# Module types

Source

## Structs§

ActivationsKey
  A key that when stord in a hash map ensures that there is only one semver compatible version of each crate. Find the activated version of a crate based on the name, source, and semver compatibility.
DepsFrame
RcVecIter
RemainingDeps
  Note that an `OrdSet` is used for the remaining dependencies that need activation. This set is sorted by how many candidates each dependency has.
ResolveOpts
  Options for how the resolve should work.
ResolverProgress

## Enums§

ConflictReason
  All possible reasons that a package might fail to activate.
ResolveBehavior
  Resolver behavior, used to opt-in to new behavior that is backwards-incompatible via the `resolver` field in the manifest.
SemverCompatibility
  A type that represents when cargo treats two Versions as compatible. Versions `a` and `b` are compatible if their left-most nonzero digit is the same.

## Type Aliases§

ConflictMap
  A list of packages that have gotten in the way of resolving a dependency. If resolving a dependency fails then this represents an incompatibility, that dependency will never be resolve while all of these packages are active. This is useless if the packages can’t be simultaneously activated for other reasons.
DepInfo
  Information about the dependencies for a crate, a tuple of:
FeaturesSet
  The preferred way to store the set of activated features for a package. This is sorted so that it impls Hash, and owns its contents, needed so it can be part of the key for caching in the `DepsCache`. It is also cloned often as part of `Context`, hence the `RC`. `im-rs::OrdSet` was slower of small sets like this, but this can change with improvements to std, im, or llvm. Using a consistent type for this allows us to use the highly optimized comparison operators like `is_subset` at the interfaces.