pub enum SyntaxShape {
Show 35 variants
Any,
Binary,
Block,
Boolean,
CellPath,
Closure(Option<Vec<SyntaxShape>>),
CompleterWrapper(Box<SyntaxShape>, Id<Decl>),
DateTime,
Directory,
Duration,
Error,
Expression,
ExternalArgument,
Filepath,
Filesize,
Float,
FullCellPath,
GlobPattern,
Int,
ImportPattern,
Keyword(Vec<u8>, Box<SyntaxShape>),
List(Box<SyntaxShape>),
MathExpression,
MatchBlock,
Nothing,
Number,
OneOf(Vec<SyntaxShape>),
Operator,
Range,
Record(Vec<(String, SyntaxShape)>),
RowCondition,
Signature,
String,
Table(Vec<(String, SyntaxShape)>),
VarWithOptType,
}
Expand description
The syntactic shapes that describe how a sequence should be parsed.
This extends beyond Type
which describes how Value
s are represented.
SyntaxShape
s can describe the parsing rules for arguments to a command.
e.g. SyntaxShape::GlobPattern
/SyntaxShape::Filepath
serve the completer,
but don’t have an associated Value
There are additional SyntaxShape
s that only make sense in particular expressions or keywords
Variants§
Any
Any syntactic form is allowed
Binary
A binary literal
Block
A block is allowed, eg {start this thing}
Boolean
A boolean value, eg true
or false
CellPath
A dotted path to navigate the table
Closure(Option<Vec<SyntaxShape>>)
A closure is allowed, eg {|| start this thing}
CompleterWrapper(Box<SyntaxShape>, Id<Decl>)
A SyntaxShape
with custom completion logic
DateTime
A datetime value, eg 2022-02-02
or 2019-10-12T07:20:50.52+00:00
Directory
A directory is allowed
Duration
A duration value is allowed, eg 19day
Error
An error value
Expression
A general expression, eg 1 + 2
or foo --bar
ExternalArgument
A (typically) string argument that follows external command argument parsing rules.
Filepaths are expanded if unquoted, globs are allowed, and quotes embedded within unknown args are unquoted.
Filepath
A filepath is allowed
Filesize
A filesize value is allowed, eg 10kb
Float
A floating point value, eg 1.0
FullCellPath
A dotted path including the variable to access items
Fully qualified
GlobPattern
A glob pattern is allowed, eg foo*
Int
Only an integer value is allowed
ImportPattern
A module path pattern used for imports
Keyword(Vec<u8>, Box<SyntaxShape>)
A specific match to a word or symbol
List(Box<SyntaxShape>)
A list is allowed, eg [first second]
MathExpression
A general math expression, eg 1 + 2
MatchBlock
A block of matches, used by match
Nothing
Nothing
Number
Only a numeric (integer or float) value is allowed
OneOf(Vec<SyntaxShape>)
One of a list of possible items, checked in order
Operator
An operator, eg +
Range
A range is allowed (eg, 1..3
)
Record(Vec<(String, SyntaxShape)>)
A record value, eg {x: 1, y: 2}
RowCondition
A math expression which expands shorthand forms on the lefthand side, eg foo > 1
The shorthand allows us to more easily reach columns inside of the row being passed in
Signature
A signature for a definition, [x:int, --foo]
String
Strings and string-like bare words are allowed
Table(Vec<(String, SyntaxShape)>)
A table is allowed, eg [[first, second]; [1, 2]]
VarWithOptType
A variable with optional type, x
or x: int
Implementations§
Source§impl SyntaxShape
impl SyntaxShape
Sourcepub fn to_type(&self) -> Type
pub fn to_type(&self) -> Type
If possible provide the associated concrete Type
Note: Some SyntaxShape
s don’t have a corresponding Value
Here we currently return Type::Any
use nu_protocol::{SyntaxShape, Type};
let non_value = SyntaxShape::ImportPattern;
assert_eq!(non_value.to_type(), Type::Any);
Trait Implementations§
Source§impl Clone for SyntaxShape
impl Clone for SyntaxShape
Source§fn clone(&self) -> SyntaxShape
fn clone(&self) -> SyntaxShape
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SyntaxShape
impl Debug for SyntaxShape
Source§impl<'de> Deserialize<'de> for SyntaxShape
impl<'de> Deserialize<'de> for SyntaxShape
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SyntaxShape, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SyntaxShape, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Display for SyntaxShape
impl Display for SyntaxShape
Source§impl PartialEq for SyntaxShape
impl PartialEq for SyntaxShape
Source§impl Serialize for SyntaxShape
impl Serialize for SyntaxShape
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for SyntaxShape
impl StructuralPartialEq for SyntaxShape
Auto Trait Implementations§
impl Freeze for SyntaxShape
impl RefUnwindSafe for SyntaxShape
impl Send for SyntaxShape
impl Sync for SyntaxShape
impl Unpin for SyntaxShape
impl UnwindSafe for SyntaxShape
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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 moreSource§impl<T> IntoSpanned for T
impl<T> IntoSpanned for T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more