#[non_exhaustive]pub enum StringPart {
Literal(String),
Var(VarPath),
VarWithDefault {
path: VarPath,
default: Vec<StringPart>,
},
VarLength(VarPath),
Positional(usize),
AllArgs,
ArgCount,
Arithmetic(String),
CommandSubst(Vec<Stmt>),
LastExitCode,
CurrentPid,
}Expand description
Part of an interpolated string.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Literal(String)
Literal text
Var(VarPath)
Variable interpolation: ${VAR} or $VAR
VarWithDefault
Variable with default: ${VAR:-default} / ${path[sub]:-default} where
default can contain nested expansions
VarLength(VarPath)
Variable string length: ${#VAR} or ${#path[sub]}
Positional(usize)
Positional parameter: $0, $1, …, $9
AllArgs
All arguments: $@
ArgCount
Argument count: $#
Arithmetic(String)
Arithmetic expansion: $((expr))
CommandSubst(Vec<Stmt>)
Command substitution: $(...) embedded in a string — runs a statement
block (full grammar; see Expr::CommandSubst) and inlines its stdout.
LastExitCode
Last exit code: $?
CurrentPid
Current shell PID: $$
Trait Implementations§
Source§impl Clone for StringPart
impl Clone for StringPart
Source§fn clone(&self) -> StringPart
fn clone(&self) -> StringPart
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 StringPart
impl Debug for StringPart
Source§impl PartialEq for StringPart
impl PartialEq for StringPart
impl StructuralPartialEq for StringPart
Auto Trait Implementations§
impl Freeze for StringPart
impl RefUnwindSafe for StringPart
impl Send for StringPart
impl Sync for StringPart
impl Unpin for StringPart
impl UnsafeUnpin for StringPart
impl UnwindSafe for StringPart
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> ⓘ
impl<T> OrderedSeq<'_, T> for Twhere
T: Clone,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
Source§impl<T, S> SpanWrap<S> for Twhere
S: WrappingSpan<T>,
impl<T, S> SpanWrap<S> for Twhere
S: WrappingSpan<T>,
Source§fn with_span(self, span: S) -> <S as WrappingSpan<Self>>::Spanned
fn with_span(self, span: S) -> <S as WrappingSpan<Self>>::Spanned
Invokes
WrappingSpan::make_wrapped to wrap an AST node in a span.