pub enum ResourceFilter {
All,
Updated(Vec<(String, Option<String>, String, String)>),
}Expand description
Filtering options for resource installation operations.
This enum controls which resources are processed during installation, enabling both full installations and selective updates. The filter determines which entries from the lockfile are actually installed.
§Use Cases
- Full installations: Install all resources defined in lockfile
- Selective updates: Install only resources that have been updated
- Performance optimization: Avoid reinstalling unchanged resources
- Incremental deployments: Update only what has changed
§Variants
§All Resources
ResourceFilter::All processes every resource entry in the lockfile,
regardless of whether it has changed. This is used by the install command
for complete environment setup.
§Updated Resources Only
ResourceFilter::Updated processes only resources that have version
changes, as tracked by the update command. This enables efficient
incremental updates without full reinstallation.
§Examples
Install all resources:
use agpm_cli::installer::ResourceFilter;
let filter = ResourceFilter::All;
// This will install every resource in the lockfileInstall only updated resources:
use agpm_cli::installer::ResourceFilter;
let updates = vec![
("agent1".to_string(), None, "v1.0.0".to_string(), "v1.1.0".to_string()),
("tool2".to_string(), Some("community".to_string()), "v2.1.0".to_string(), "v2.2.0".to_string()),
];
let filter = ResourceFilter::Updated(updates);
// This will install only agent1 and tool2§Update Tuple Format
For ResourceFilter::Updated, each tuple contains:
name: Resource name as defined in the manifestold_version: Previous version (for logging and tracking)new_version: New version to install
The old version is primarily used for user feedback and logging, while the new version determines what gets installed.
Variants§
All
Install all resources from the lockfile.
This option processes every resource entry in the lockfile, installing or updating each one regardless of whether it has changed since the last installation.
Updated(Vec<(String, Option<String>, String, String)>)
Install only specific updated resources.
This option processes only the resources specified in the update list, allowing for efficient incremental updates. Each tuple contains:
- Resource name
- Source name (None for local resources)
- Old version (for tracking)
- New version (to install)
Auto Trait Implementations§
impl Freeze for ResourceFilter
impl RefUnwindSafe for ResourceFilter
impl Send for ResourceFilter
impl Sync for ResourceFilter
impl Unpin for ResourceFilter
impl UnwindSafe for ResourceFilter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more