pub struct ParamExpansion {
pub flags: Vec<ParamFlag>,
pub length: bool,
pub is_set_test: bool,
pub name: CompactString,
pub nested: Option<Box<ParamExpansion>>,
pub subscript: Option<Subscript>,
pub modifier: Option<ParamModifier>,
}Expand description
Rich parameter expansion: ${(flags)#name[subscript]modifier}.
Follows the 14-field model from mvdan/sh: flags → length → nested → name → subscript → modifier.
Fields§
§flags: Vec<ParamFlag>${(flags)name} — processing flags like (L), (U), (f), etc.
length: bool${#name} — length operator.
is_set_test: bool${+name} — is-set test.
name: CompactStringThe parameter name (or special: ?, $, #, *, @, digits).
nested: Option<Box<ParamExpansion>>${${inner}} — nested expansion (indirect).
subscript: Option<Subscript>${name[subscript]} — array subscript.
modifier: Option<ParamModifier>The operation to apply: default, trim, replace, case, substring, etc.
Trait Implementations§
Source§impl Clone for ParamExpansion
impl Clone for ParamExpansion
Source§fn clone(&self) -> ParamExpansion
fn clone(&self) -> ParamExpansion
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 ParamExpansion
impl Debug for ParamExpansion
Source§impl PartialEq for ParamExpansion
impl PartialEq for ParamExpansion
impl StructuralPartialEq for ParamExpansion
Auto Trait Implementations§
impl Freeze for ParamExpansion
impl RefUnwindSafe for ParamExpansion
impl Send for ParamExpansion
impl Sync for ParamExpansion
impl Unpin for ParamExpansion
impl UnsafeUnpin for ParamExpansion
impl UnwindSafe for ParamExpansion
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