pub struct MatchData {
pub match: Option<Vec<String>>,
pub mbegin: Option<Vec<String>>,
pub mend: Option<Vec<String>>,
}Expand description
Save/restore for the per-pattern-match magic vars $match,
$mbegin, $mend. Direct port of MatchData and the
savematch/restorematch/freematch trio in
src/zsh/Src/Modules/zutil.c:33-80.
zstyle’s -e (eval pattern on retrieve) and zregexparse’s
inner pattern matches both want to evaluate patterns without
clobbering the caller’s $match[], $mbegin[], $mend[]
variables. The C version keeps a heap-duplicated copy in a
MatchData struct, runs the inner match, then either
restores or frees. The Rust port stores Option<Vec<String>>
— None means the var was unset.
Fields§
§match: Option<Vec<String>>§mbegin: Option<Vec<String>>mbegin field.
mend: Option<Vec<String>>mend field.
Auto Trait Implementations§
impl Freeze for MatchData
impl RefUnwindSafe for MatchData
impl Send for MatchData
impl Sync for MatchData
impl Unpin for MatchData
impl UnsafeUnpin for MatchData
impl UnwindSafe for MatchData
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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>
Converts
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>
Converts
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.