pub trait Installable<'lock> {
// Required methods
fn install_path(&self) -> &'lock Path;
fn lock(&self) -> &'lock Lock;
fn roots(&self) -> impl Iterator<Item = &PackageName>;
fn project_name(&self) -> Option<&PackageName>;
// Provided methods
fn group_root(
&self,
_groups: &DependencyGroupsWithDefaults,
) -> Option<&PackageName> { ... }
fn includes_group(
&self,
_package: Option<&PackageName>,
group: &GroupName,
groups: &DependencyGroupsWithDefaults,
) -> bool { ... }
fn to_resolution(
&self,
marker_env: &ResolverMarkerEnvironment,
tags: &Tags,
extras: &ExtrasSpecificationWithDefaults,
groups: &DependencyGroupsWithDefaults,
build_options: &BuildOptions,
install_options: &InstallOptions,
) -> Result<Resolution, LockError> { ... }
fn installable_node(
&self,
package: &Package,
tags: &Tags,
marker_env: &ResolverMarkerEnvironment,
build_options: &BuildOptions,
) -> Result<Node, LockError> { ... }
fn non_installable_node(
&self,
package: &Package,
tags: &Tags,
marker_env: &ResolverMarkerEnvironment,
) -> Result<Node, LockError> { ... }
fn package_to_node(
&self,
package: &Package,
tags: &Tags,
build_options: &BuildOptions,
install_options: &InstallOptions,
marker_env: &ResolverMarkerEnvironment,
) -> Result<Node, LockError> { ... }
}Required Methods§
Sourcefn install_path(&self) -> &'lock Path
fn install_path(&self) -> &'lock Path
Return the root install path.
Sourcefn roots(&self) -> impl Iterator<Item = &PackageName>
fn roots(&self) -> impl Iterator<Item = &PackageName>
Return the PackageName of the root packages in the target.
Sourcefn project_name(&self) -> Option<&PackageName>
fn project_name(&self) -> Option<&PackageName>
Return the PackageName of the target, if available.
Provided Methods§
Sourcefn group_root(
&self,
_groups: &DependencyGroupsWithDefaults,
) -> Option<&PackageName>
fn group_root( &self, _groups: &DependencyGroupsWithDefaults, ) -> Option<&PackageName>
Return the package whose dependency groups, but not production dependencies, are included.
Sourcefn includes_group(
&self,
_package: Option<&PackageName>,
group: &GroupName,
groups: &DependencyGroupsWithDefaults,
) -> bool
fn includes_group( &self, _package: Option<&PackageName>, group: &GroupName, groups: &DependencyGroupsWithDefaults, ) -> bool
Return whether a dependency group should be included for its owning package.
A None package represents groups defined directly on a non-project workspace root.
Sourcefn to_resolution(
&self,
marker_env: &ResolverMarkerEnvironment,
tags: &Tags,
extras: &ExtrasSpecificationWithDefaults,
groups: &DependencyGroupsWithDefaults,
build_options: &BuildOptions,
install_options: &InstallOptions,
) -> Result<Resolution, LockError>
fn to_resolution( &self, marker_env: &ResolverMarkerEnvironment, tags: &Tags, extras: &ExtrasSpecificationWithDefaults, groups: &DependencyGroupsWithDefaults, build_options: &BuildOptions, install_options: &InstallOptions, ) -> Result<Resolution, LockError>
Convert the Lock to a Resolution using the given marker environment, tags, and root.
Sourcefn installable_node(
&self,
package: &Package,
tags: &Tags,
marker_env: &ResolverMarkerEnvironment,
build_options: &BuildOptions,
) -> Result<Node, LockError>
fn installable_node( &self, package: &Package, tags: &Tags, marker_env: &ResolverMarkerEnvironment, build_options: &BuildOptions, ) -> Result<Node, LockError>
Sourcefn non_installable_node(
&self,
package: &Package,
tags: &Tags,
marker_env: &ResolverMarkerEnvironment,
) -> Result<Node, LockError>
fn non_installable_node( &self, package: &Package, tags: &Tags, marker_env: &ResolverMarkerEnvironment, ) -> Result<Node, LockError>
Sourcefn package_to_node(
&self,
package: &Package,
tags: &Tags,
build_options: &BuildOptions,
install_options: &InstallOptions,
marker_env: &ResolverMarkerEnvironment,
) -> Result<Node, LockError>
fn package_to_node( &self, package: &Package, tags: &Tags, build_options: &BuildOptions, install_options: &InstallOptions, marker_env: &ResolverMarkerEnvironment, ) -> Result<Node, LockError>
Convert a lockfile entry to a graph Node.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".