pub struct TaskFilter { /* private fields */ }Expand description
Filters shared by task list and watch operations.
An empty phase filter matches every phase.
Multiple with_phase calls accumulate with OR semantics.
Slot, label and phase filters are ANDed.
§Example
use solti_model::{Slot, TaskFilter, TaskPhase};
let filter = TaskFilter::new()
.with_slot(Slot::new("build").unwrap())
.with_active();
assert_eq!(filter.slot().unwrap().as_str(), "build");
assert!(filter.matches_phase(&TaskPhase::Pending));
assert!(!filter.matches_phase(&TaskPhase::Failed));Implementations§
Source§impl TaskFilter
impl TaskFilter
Sourcepub fn with_phase(self, phase: TaskPhase) -> Self
pub fn with_phase(self, phase: TaskPhase) -> Self
Adds a phase filter.
Multiple calls accumulate with OR semantics.
Sourcepub fn with_phases(self, phases: impl IntoIterator<Item = TaskPhase>) -> Self
pub fn with_phases(self, phases: impl IntoIterator<Item = TaskPhase>) -> Self
Adds phase filters from an iterator.
Values are deduplicated and retain OR semantics.
Sourcepub fn with_label_selector(self, selector: LabelSelector) -> ModelResult<Self>
pub fn with_label_selector(self, selector: LabelSelector) -> ModelResult<Self>
Filter by labels.
Every selector requirement is ANDed. An empty selector matches all tasks.
§Errors
Returns ModelError::Invalid when the selector is invalid.
Sourcepub fn with_active(self) -> Self
pub fn with_active(self) -> Self
Filter by all active phases: Pending and Running.
Sourcepub fn with_terminal(self) -> Self
pub fn with_terminal(self) -> Self
Filter by all terminal phases.
Sourcepub fn matches_phase(&self, phase: &TaskPhase) -> bool
pub fn matches_phase(&self, phase: &TaskPhase) -> bool
Returns whether a phase passes the phase filter.
An empty filter matches all phases.
Sourcepub fn matches_labels(&self, labels: &Labels) -> bool
pub fn matches_labels(&self, labels: &Labels) -> bool
Returns whether labels pass the selector.
Sourcepub fn label_selector(&self) -> &LabelSelector
pub fn label_selector(&self) -> &LabelSelector
Label selector.
Trait Implementations§
Source§impl Clone for TaskFilter
impl Clone for TaskFilter
Source§fn clone(&self) -> TaskFilter
fn clone(&self) -> TaskFilter
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TaskFilter
impl Debug for TaskFilter
Source§impl Default for TaskFilter
impl Default for TaskFilter
Source§fn default() -> TaskFilter
fn default() -> TaskFilter
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for TaskFilter
impl<'de> Deserialize<'de> for TaskFilter
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for TaskFilter
Source§impl PartialEq for TaskFilter
impl PartialEq for TaskFilter
Source§impl Serialize for TaskFilter
impl Serialize for TaskFilter
impl StructuralPartialEq for TaskFilter
Auto Trait Implementations§
impl Freeze for TaskFilter
impl RefUnwindSafe for TaskFilter
impl Send for TaskFilter
impl Sync for TaskFilter
impl Unpin for TaskFilter
impl UnsafeUnpin for TaskFilter
impl UnwindSafe for TaskFilter
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
Mutably borrows from an owned value. Read more