Enum yash_syntax::syntax::TextUnit
source · [−]pub enum TextUnit {
Literal(char),
Backslashed(char),
RawParam {
name: String,
location: Location,
},
BracedParam(Param),
CommandSubst {
content: Rc<str>,
location: Location,
},
Backquote {
content: Vec<BackquoteUnit>,
location: Location,
},
Arith {
content: Text,
location: Location,
},
}
Expand description
Element of a Text, i.e., something that can be expanded.
Variants
Literal(char)
Literal single character.
Backslashed(char)
Backslash-escaped single character.
RawParam
Fields
name: String
Parameter name.
location: Location
Position of this parameter expansion in the source code.
Parameter expansion that is not enclosed in braces.
BracedParam(Param)
Parameter expansion that is enclosed in braces.
CommandSubst
Fields
content: Rc<str>
Command string that will be parsed and executed when the command substitution is expanded.
This value is reference-counted so that the shell does not have to clone the entire string when it is passed to a subshell to execute the command substitution.
location: Location
Position of this command substitution in the source code.
Command substitution of the form $(...)
.
Backquote
Fields
content: Vec<BackquoteUnit>
Command string that will be parsed and executed when the command substitution is expanded.
location: Location
Position of this command substitution in the source code.
Command substitution of the form `...`
.
Arith
Fields
content: Text
Expression that is to be evaluated.
location: Location
Position of this arithmetic expansion in the source code.
Arithmetic expansion.
Trait Implementations
sourceimpl MaybeLiteral for TextUnit
impl MaybeLiteral for TextUnit
sourcefn extend_if_literal<T: Extend<char>>(&self, result: T) -> Result<T, T>
fn extend_if_literal<T: Extend<char>>(&self, result: T) -> Result<T, T>
If self
is Literal
, appends the character to result
and returns
Ok(result)
. Otherwise, returns Err(result)
.
sourcefn to_string_if_literal(&self) -> Option<String>
fn to_string_if_literal(&self) -> Option<String>
self
is literal and, if so, converts to a string.