Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Application and Config #42

Merged
merged 1 commit into from
May 23, 2019

Conversation

tony-iqlusion
Copy link
Member

@tony-iqlusion tony-iqlusion commented May 22, 2019

This change makes Application-types the global state, as opposed to the configuration. The configuration is now owned by the application.

This brings Abscissa a bit closer to an Entity-Component-System, where the Application is the owner of all state, including the components, and is thus able to obtain mutable references to its internal state.

Additionally this includes a fairly large refactor of application path handing, adding a Paths associated type to Application, and computing all paths in advance upon application startup.

This also includes a number of dependency updates including bumping zeroize to 0.8 and canonical-path to 2.0. It also seems we've accumulated a number of unintended transitive dependencies... I've left some notes on the Cargo.lock and will look at how to remove them in follow-up PRs.

@@ -55,14 +55,31 @@ dependencies = [
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "argon2rs"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This appears to be added due to the term crate, whose author is looking for a new maintainer.

In a follow-up PR I'll take a look at switching to termcolor which is both maintained and has significantly fewer dependencies (it actually appears to have no dependencies when using it on non-Windows platforms).

]

[[package]]
name = "bitflags"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "blake2-rfc"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also a transitive dependency of the term crate.

@tarcieri tarcieri force-pushed the application-and-config-refactor branch 4 times, most recently from bf4de24 to 0698906 Compare May 23, 2019 01:34
This change makes Application-types the global state, as opposed to the
configuration. The configuration is now owned by the application.

This brings Abscissa a bit closer to an Entity-Component-System, where
the Application is the owner of all state, including the components, and
is thus able to obtain mutable references to its internal state.

Additionally this includes a fairly large refactor of application path
handing, adding a `Paths` associated type to `Application`, and
computing all paths in advance upon application startup.
@tarcieri tarcieri force-pushed the application-and-config-refactor branch from 0698906 to 9bd38d4 Compare May 23, 2019 01:44
@tony-iqlusion tony-iqlusion merged commit 267ba58 into develop May 23, 2019
@tony-iqlusion tony-iqlusion deleted the application-and-config-refactor branch May 23, 2019 02:15
@tony-iqlusion tony-iqlusion mentioned this pull request Jul 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant