Centralize server-level config in new 'ServerConfig' struct. #48
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, we store server-level configuration (the workspace_root and the built_in_slice_paths) in 2 places:
Once (the main one) in
Session
, but we also store copies of this data in every instance ofSliceConfig
too.This PR removes the copies from
SliceConfig
. Now they're only stored in a single location (Session
).It also introduces a new
ServerConfig
to hold these data-points, so it's easier to pass around (instead of 2 separate fields).Any time we need access to the server configuration, instead of using the copy in
SliceConfig
, we just take a&ServerConfig
that the caller passes in.This change means that we no longer need to fetch the root paths when constructing a
SliceConfig
.This actually ends up simplifying alot of code, and lets us introduce
Default
implementations for a few types too.