pub struct SelectorRequirement {
pub key: String,
pub operator: SelectorOperator,
pub values: Vec<String>,
}Expand description
Single set-based requirement for label matching.
Used inside super::LabelSelector::match_expressions.
§Example
use solti_model::{SelectorOperator, SelectorRequirement};
let req = SelectorRequirement::r#in("gpu", vec!["a100".into(), "h100".into()]);
assert_eq!(req.key, "gpu");
assert_eq!(req.operator, SelectorOperator::In);
req.validate().unwrap();Fields§
§key: StringLabel key to evaluate.
operator: SelectorOperatorComparison operator.
values: Vec<String>Values used by In and NotIn.
This must be empty for Exists and DoesNotExist.
Implementations§
Source§impl SelectorRequirement
impl SelectorRequirement
Sourcepub fn validate(&self) -> ModelResult<()>
pub fn validate(&self) -> ModelResult<()>
Validates the requirement.
§Errors
Returns crate::ModelError::Invalid.
§Example
use solti_model::SelectorRequirement;
assert!(SelectorRequirement::exists("gpu").validate().is_ok());
assert!(SelectorRequirement::r#in("gpu", vec![]).validate().is_err());Sourcepub fn in(key: impl Into<String>, values: Vec<String>) -> Self
pub fn in(key: impl Into<String>, values: Vec<String>) -> Self
Creates an In requirement.
§Example
use solti_model::{SelectorOperator, SelectorRequirement};
let req = SelectorRequirement::r#in("gpu", vec!["h100".into()]);
assert_eq!(req.operator, SelectorOperator::In);Sourcepub fn not_in(key: impl Into<String>, values: Vec<String>) -> Self
pub fn not_in(key: impl Into<String>, values: Vec<String>) -> Self
Creates a NotIn requirement.
Sourcepub fn does_not_exist(key: impl Into<String>) -> Self
pub fn does_not_exist(key: impl Into<String>) -> Self
Creates a DoesNotExist requirement.
Trait Implementations§
Source§impl Clone for SelectorRequirement
impl Clone for SelectorRequirement
Source§fn clone(&self) -> SelectorRequirement
fn clone(&self) -> SelectorRequirement
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 SelectorRequirement
impl Debug for SelectorRequirement
Source§impl<'de> Deserialize<'de> for SelectorRequirement
impl<'de> Deserialize<'de> for SelectorRequirement
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 SelectorRequirement
Source§impl JsonSchema for SelectorRequirement
Available on crate feature schema only.
impl JsonSchema for SelectorRequirement
Available on crate feature
schema only.Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl PartialEq for SelectorRequirement
impl PartialEq for SelectorRequirement
Source§impl Serialize for SelectorRequirement
impl Serialize for SelectorRequirement
impl StructuralPartialEq for SelectorRequirement
Auto Trait Implementations§
impl Freeze for SelectorRequirement
impl RefUnwindSafe for SelectorRequirement
impl Send for SelectorRequirement
impl Sync for SelectorRequirement
impl Unpin for SelectorRequirement
impl UnsafeUnpin for SelectorRequirement
impl UnwindSafe for SelectorRequirement
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