pub struct IdentityMatcher {
pub username: Option<String>,
pub hostname: Option<String>,
pub source_path: Option<String>,
}Expand description
One glob match against a kopia identity’s structured
(username, hostname, sourcePath) triple. Every set component must match
(AND); an unset component matches anything — but at least one component must
be set (webhook-refused otherwise: a fully-empty matcher constrains nothing).
Glob semantics, per component (non-crossing — a * in username can
never reach into hostname): * matches any run of characters (including
none), ? matches exactly one character, everything else matches literally,
and the pattern is anchored (it must cover the WHOLE component — pg does
not match pg-main; pg* does). Matching is always on the structured
triple, never on a joined username@hostname:path string, so literal @/:
inside a component cannot confuse it. No character classes ([...]) or brace
expansion — those are rejected at admission rather than silently matched
literally. See component_glob_matches.
Fields§
§username: Option<String>Glob for the username component; absent matches any username.
hostname: Option<String>Glob for the hostname component; absent matches any hostname.
source_path: Option<String>Glob for the sourcePath component; absent matches any path.
Trait Implementations§
Source§impl Clone for IdentityMatcher
impl Clone for IdentityMatcher
Source§fn clone(&self) -> IdentityMatcher
fn clone(&self) -> IdentityMatcher
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IdentityMatcher
impl Debug for IdentityMatcher
Source§impl Default for IdentityMatcher
impl Default for IdentityMatcher
Source§fn default() -> IdentityMatcher
fn default() -> IdentityMatcher
Source§impl<'de> Deserialize<'de> for IdentityMatcher
impl<'de> Deserialize<'de> for IdentityMatcher
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>,
impl Eq for IdentityMatcher
Source§impl JsonSchema for IdentityMatcher
impl JsonSchema for IdentityMatcher
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for IdentityMatcher
impl PartialEq for IdentityMatcher
Source§fn eq(&self, other: &IdentityMatcher) -> bool
fn eq(&self, other: &IdentityMatcher) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for IdentityMatcher
impl Serialize for IdentityMatcher
impl StructuralPartialEq for IdentityMatcher
Auto Trait Implementations§
impl Freeze for IdentityMatcher
impl RefUnwindSafe for IdentityMatcher
impl Send for IdentityMatcher
impl Sync for IdentityMatcher
impl Unpin for IdentityMatcher
impl UnsafeUnpin for IdentityMatcher
impl UnwindSafe for IdentityMatcher
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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