EnvSpec

Struct EnvSpec 

Source
pub struct EnvSpec {
    pub node_type: NodeType,
    pub num_args: usize,
    pub arg_types: Option<Vec<ArgType>>,
    pub allowed_in_text: bool,
    pub num_optional_args: usize,
    pub handler: EnvHandler,
}
Expand description

Processed environment specification used during LaTeX parsing.

This struct represents the final, resolved configuration for an environment after processing the definition specification. It contains all necessary information for the parser to handle the environment correctly, with defaults applied and validation performed.

§See Also

  • EnvHandler: The handler function for processing the environment
  • crate::parser: Parser that uses these specifications

Fields§

§node_type: NodeType

Node type that this environment produces.

Specifies the type of parse node that will be created when this environment is successfully parsed. This determines how the environment is represented internally and rendered.

§Examples

  • NodeType::Environment: Generic environment
  • NodeType::Matrix: Matrix-specific environment
§num_args: usize

Number of required arguments for this environment.

The exact count of mandatory arguments that must be provided. This is resolved from the optional num_args in EnvProps.

§Examples

  • 0: No required arguments (content parsed internally)
  • 2: Exactly two required arguments
§arg_types: Option<Vec<ArgType>>

Argument types for each required argument.

Specifies the expected type of each argument. The vector length must match num_args. This is resolved from the optional arg_types in EnvProps.

§See Also

  • ArgType: Available argument types
§allowed_in_text: bool

Whether this environment is allowed in text mode.

Controls whether the environment can be used in regular text contexts or only within mathematical expressions. This is resolved from the optional allowed_in_text in EnvProps.

§Examples

  • true: Can be used in both text and math modes
  • false: Math mode only (most mathematical environments)
§num_optional_args: usize

Number of optional arguments this environment accepts.

The exact count of optional arguments that can be provided. This is resolved from the optional num_optional_args in EnvProps.

§Examples

  • 0: No optional arguments
  • 1: One optional argument allowed
§handler: EnvHandler

The handler function that processes this environment.

This function is called during parsing to validate arguments and create the appropriate parse node. It encapsulates the core logic for the environment type.

§See Also

Trait Implementations§

Source§

impl Clone for EnvSpec

Source§

fn clone(&self) -> EnvSpec

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EnvSpec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for EnvSpec

Provides a basic default environment specification.

The default implementation creates a minimal environment spec that can be used as a starting point. The default handler returns an error, so this should be customized with a proper handler for actual use.

§Warning

The default handler will always return an error. You must provide a proper EnvHandler implementation for the environment to function.

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Spec for EnvSpec

Source§

fn num_args(&self) -> usize

Returns the number of arguments required.
Source§

fn num_optional_args(&self) -> usize

Returns the number of optional arguments.
Source§

fn arg_types(&self) -> Option<&Vec<ArgType>>

Returns the argument types if specified.
Source§

fn primitive(&self) -> bool

Returns true if the spec is primitive.
Source§

fn node_type(&self) -> Option<&NodeType>

Returns the node type if specified.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.