pub enum SyntaxShape {
Show 28 variants Keyword(Vec<u8>, Box<SyntaxShape>), Any, String, CellPath, FullCellPath, Number, Range, Int, Filepath, GlobPattern, ImportPattern, Binary, Block(Option<Vec<SyntaxShape>>), Table, List(Box<SyntaxShape>), Filesize, Duration, DateTime, Operator, RowCondition, MathExpression, Variable, VarWithOptType, Signature, Expression, Boolean, Record, Custom(Box<SyntaxShape>, DeclId),
}
Expand description

The syntactic shapes that values must match to be passed into a command. You can think of this as the type-checking that occurs when you call a function.

Variants

Keyword(Vec<u8>, Box<SyntaxShape>)

A specific match to a word or symbol

Any

Any syntactic form is allowed

String

Strings and string-like bare words are allowed

CellPath

A dotted path to navigate the table

FullCellPath

A dotted path to navigate the table (including variable)

Number

Only a numeric (integer or decimal) value is allowed

Range

A range is allowed (eg, 1..3)

Int

Only an integer value is allowed

Filepath

A filepath is allowed

GlobPattern

A glob pattern is allowed, eg foo*

ImportPattern

A module path pattern used for imports

Binary

A binary literal

Block(Option<Vec<SyntaxShape>>)

A block is allowed, eg {start this thing}

Table

A table is allowed, eg [[first, second]; [1, 2]]

List(Box<SyntaxShape>)

A table is allowed, eg [first second]

Filesize

A filesize value is allowed, eg 10kb

Duration

A duration value is allowed, eg 19day

DateTime

A datetime value, eg 2022-02-02 or 2019-10-12T07:20:50.52+00:00

Operator

An operator

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

MathExpression

A general math expression, eg 1 + 2

Variable

A variable name

VarWithOptType

A variable with optional type, x or x: int

Signature

A signature for a definition, [x:int, --foo]

Expression

A general expression, eg 1 + 2 or foo --bar

Boolean

A boolean value

Record

A record value

Custom(Box<SyntaxShape>, DeclId)

A custom shape with custom completion logic

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Deserialize this value from the given Serde deserializer. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Converts the value of self to an instance of Hjson

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.