reimplemented parts of the Debian backend to get rid of the apt library that has a different version everywhere and therefore won't play nicely with our pacdef
cargo version 1.77 onwards added support for cargo:: to communicate with
cargo and deprecated the old cargo: syntax.
Signed-off-by: innocentzero <isfarulhaque@proton.me>
- Refactor the confusing/bodgy consts backend macro to use a single
BackendInfo struct
- Combine supports_as_dependency() and the switches_dependency into a
single Option type as that is a better representation as it is an
optional backend feature.
- Add more types like Packages, Sections for uniformity.
- Added a crate-private prelude and switches all imports to use a
prelude glob import (excluding functions because it's nice to only be
importing types)
- Refactored Backend section name in logging by implementing Display for
AnyBackend that just prints the section
Implemented in #77.
- Refactor the confusing/bodgy consts backend macro to use a single
`BackendInfo` struct
- Combine `supports_as_dependency()` and the `switches_dependency` into a single `Option` type as that is a better representation as it is an optional backend feature.
- Add more types like `Packages`, `Sections` for uniformity.
- Added a crate-private prelude and switches all imports to use a
prelude glob import (excluding functions because it's nice to only be
importing types)
- Refactored Backend section name in logging by implementing Display for
`AnyBackend` that just prints the `section`
Deduplicates the warning messages, and separates implementation from
intention.
The employed log crate is fairly small and simple. It sacrifices
eye-candy for minimalism, which we favor in this projectd.
Implemented in #75.
Use clap-derive to let it build the CLI and parse it automagically. This
allows to rework core and split up the monster Pacdef struct.
Switches groups from HashSet to BTreeSet for built-in sorting/more
deterministic general operation.
Refactored code base into a global type synonym Groups to remove
duplication of the HashSet/BTreeSet implementation detail to a single
location.
Implemented in #74.
Move the flags required for get_installed_packages and
get_user_installed_packages to separate module constants.
Signed-off-by: innocentzero <isfarulhaque@proton.me>