Skip to main content

Module

Struct Module 

Source
pub struct Module { /* private fields */ }
Expand description

The abstract syntax tree for a single Miden Assembly module.

All module kinds share this AST representation, as they are largely identical. However, the ModuleKind dictates how the parsed module is semantically analyzed and validated.

Implementations§

Source§

impl Module

Constants

Source

pub const FILE_EXTENSION: &'static str = "masm"

File extension for a Assembly Module.

Source

pub const ROOT: &'static str = "mod"

Name of the root module.

Source

pub const ROOT_FILENAME: &'static str = "mod.masm"

File name of the root module.

Source§

impl Module

Construction

Source

pub fn new(kind: ModuleKind, path: impl AsRef<Path>) -> Module

Creates a new Module with the specified kind and fully-qualified path, e.g. std::math::u64.

Source

pub fn new_kernel() -> Module

An alias for creating the default, but empty, #kernel Module.

Source

pub fn new_executable() -> Module

An alias for creating the default, but empty, $exec Module.

Source

pub fn with_span(self, span: SourceSpan) -> Module

Specifies the source span in the source file in which this module was defined, that covers the full definition of this module.

Source

pub fn set_path(&mut self, path: impl AsRef<Path>)

Sets the Path for this module

Source

pub fn set_parent(&mut self, ns: impl AsRef<Path>)

Modifies the path of this module by overriding the portion of the path preceding Self::name, i.e. the portion returned by Self::parent.

See PathBuf::set_parent for details.

Source

pub fn set_docs(&mut self, docs: Option<Span<String>>)

Sets the documentation for this module

Source

pub fn set_span(&mut self, span: SourceSpan)

Like Module::with_span, but does not require ownership of the Module.

Source

pub fn define_constant( &mut self, constant: Constant, ) -> Result<(), SemanticAnalysisError>

Defines a constant, raising an error if the constant conflicts with a previous definition

Source

pub fn define_type( &mut self, ty: TypeAlias, ) -> Result<(), SemanticAnalysisError>

Defines a type alias, raising an error if the alias conflicts with a previous definition

Source

pub fn define_enum(&mut self, ty: EnumType) -> Result<(), SemanticAnalysisError>

Define a new enum type ty with visibility

Returns Err if:

  • A type alias with the same name as the enum type is already defined
  • Two or more variants of the given enum type have the same name
  • A constant (including those implicitly defined by variants of other enums in this module) with the same name as any of the variants of the given enum type, is already defined
  • The concrete type of the enumeration is not an integral type
Source

pub fn define_procedure( &mut self, procedure: Procedure, _source_manager: Arc<dyn SourceManager>, ) -> Result<(), SemanticAnalysisError>

Defines a procedure, raising an error if the procedure is invalid, or conflicts with a previous definition

Source

pub fn define_alias( &mut self, item: Alias, _source_manager: Arc<dyn SourceManager>, ) -> Result<(), SemanticAnalysisError>

Defines an item alias, raising an error if the alias is invalid, or conflicts with a previous definition

Source§

impl Module

Parsing

Source

pub fn parse( name: impl AsRef<Path>, kind: ModuleKind, source_file: Arc<SourceFile>, source_manager: Arc<dyn SourceManager>, ) -> Result<Box<Module>, Report>

Parse a Module, name, of the given ModuleKind, from source_file.

Source

pub fn parser(kind: ModuleKind) -> ModuleParser

Get a ModuleParser for parsing modules of the provided ModuleKind

Source§

impl Module

Metadata

Source

pub fn name(&self) -> &str

Get the name of this specific module, i.e. the last component of the Path that represents the fully-qualified name of the module, e.g. u64 in std::math::u64

Source

pub fn path(&self) -> &Path

Get the fully-qualified name of this module, e.g. std::math::u64

Source

pub fn parent(&self) -> Option<&Path>

Get the path of the parent module of this module, e.g. std::math in std::math::u64

Source

pub fn is_in_namespace(&self, namespace: &Path) -> bool

Returns true if this module belongs to the provided namespace.

Source

pub fn docs(&self) -> Option<Span<&str>>

Get the module documentation for this module, if it was present in the source code the module was parsed from

Source

pub fn kind(&self) -> ModuleKind

Get the type of module this represents:

See ModuleKind for details on the different types of modules.

Source

pub fn set_kind(&mut self, kind: ModuleKind)

Override the type of module this represents.

See ModuleKind for details on what the different types are.

Source

pub fn is_executable(&self) -> bool

Returns true if this module is an executable module.

Source

pub fn is_kernel(&self) -> bool

Returns true if this module is the top-level kernel module.

Source

pub fn is_in_kernel(&self) -> bool

Returns true if this module is a kernel module.

Source

pub fn has_entrypoint(&self) -> bool

Returns true if this module has an entrypoint procedure defined, i.e. a begin..end block.

Source

pub fn advice_map(&self) -> &AdviceMap

Returns a reference to the advice map derived from this module

Source

pub fn constants(&self) -> impl Iterator<Item = &Constant>

Get an iterator over the constants defined in this module.

Source

pub fn constants_mut(&mut self) -> impl Iterator<Item = &mut Constant>

Same as Module::constants, but returns mutable references.

Source

pub fn types(&self) -> impl Iterator<Item = &TypeDecl>

Get an iterator over the types defined in this module.

Source

pub fn types_mut(&mut self) -> impl Iterator<Item = &mut TypeDecl>

Same as Module::types, but returns mutable references.

Source

pub fn procedures(&self) -> impl Iterator<Item = &Procedure>

Get an iterator over the procedures defined in this module.

Source

pub fn procedures_mut(&mut self) -> impl Iterator<Item = &mut Procedure>

Same as Module::procedures, but returns mutable references.

Source

pub fn aliases(&self) -> impl Iterator<Item = &Alias>

Get an iterator over the item aliases in this module.

Source

pub fn aliases_mut(&mut self) -> impl Iterator<Item = &mut Alias>

Same as Module::aliases, but returns mutable references.

Source

pub fn items(&self) -> &[Export]

Get a reference to the items stored in this module

Source

pub fn items_mut(&mut self) -> &mut Vec<Export>

Get a mutable reference to the storage for items defined in this module

Source

pub fn exported( &self, ) -> impl Iterator<Item = (ItemIndex, QualifiedProcedureName)>

Returns items exported from this module.

Each exported item is represented by its local item index and a fully qualified name.

Source

pub fn procedure_signature(&self, id: ItemIndex) -> Option<&FunctionType>

Gets the type signature for the given ItemIndex, if available.

Source

pub fn get(&self, index: ItemIndex) -> Option<&Export>

Get the item at index in this module’s item table.

The item returned may be either a locally-defined item, or a re-exported item. See Export for details.

Source

pub fn index_of<F>(&self, predicate: F) -> Option<ItemIndex>
where F: FnMut(&Export) -> bool,

Get the ItemIndex for the first item in this module’s item table which returns true for predicate.

Source

pub fn index_of_name(&self, name: &Ident) -> Option<ItemIndex>

Get the ItemIndex for the item whose name is name in this module’s item table, if that item is exported.

Non-exported items can be retrieved by using Module::index_of.

Source

pub fn resolve( &self, name: Span<&str>, source_manager: Arc<dyn SourceManager>, ) -> Result<SymbolResolution, SymbolResolutionError>

Resolves name to an item within the local scope of this module

Source

pub fn resolve_path( &self, path: Span<&Path>, source_manager: Arc<dyn SourceManager>, ) -> Result<SymbolResolution, SymbolResolutionError>

Resolves path to an item within the local scope of this module

Source

pub fn resolver( &self, source_manager: Arc<dyn SourceManager>, ) -> Result<LocalSymbolResolver, SymbolResolutionError>

Construct a search structure that can resolve procedure names local to this module

Source

pub fn get_import(&self, module_name: &str) -> Option<&Alias>

Resolves module_name to an Alias within the context of this module

Source

pub fn get_import_mut(&mut self, module_name: &str) -> Option<&mut Alias>

Same as Module::get_import, but returns a mutable reference to the Alias

Source

pub fn resolve_type( &self, ty: &TypeExpr, source_manager: Arc<dyn SourceManager>, ) -> Result<Option<Type>, SymbolResolutionError>

Resolves a user-expressed type, ty, to a concrete type

Source

pub fn type_resolver( &self, source_manager: Arc<dyn SourceManager>, ) -> Result<impl TypeResolver<SymbolResolutionError>, SymbolResolutionError>

Get a type resolver for this module

Trait Implementations§

Source§

impl Clone for Module

Source§

fn clone(&self) -> Module

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Module

Debug representation of this module

Source§

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

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

impl Display for Module

Pretty-printed representation of this module as Miden Assembly text format

NOTE: Delegates to the crate::prettier::PrettyPrint implementation internally

Source§

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

Writes this Module as formatted MASM code into the formatter.

The formatted code puts each instruction on a separate line and preserves correct indentation for instruction blocks.

Source§

impl Emit for Module

Source§

fn name(&self) -> Option<Symbol>

The name of this item, if applicable
Source§

fn output_type(&self, _mode: OutputMode) -> OutputType

The output type associated with this item and the given mode
Source§

fn write_to<W>( &self, writer: W, mode: OutputMode, _session: &Session, ) -> Result<(), Error>
where W: Writer,

Write this item to the given std::io::Write handle, using mode to determine the output type
Source§

impl Eq for Module

Source§

impl Index<ItemIndex> for Module

Source§

type Output = Export

The returned type after indexing.
Source§

fn index(&self, index: ItemIndex) -> &<Module as Index<ItemIndex>>::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl IndexMut<ItemIndex> for Module

Source§

fn index_mut( &mut self, index: ItemIndex, ) -> &mut <Module as Index<ItemIndex>>::Output

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl Parse for Module

Source§

fn parse_with_options( self, source_manager: Arc<dyn SourceManager>, options: ParseOptions, ) -> Result<Box<Module>, Report>

Parse (or convert) self into a Module using the provided options. Read more
Source§

fn parse( self, source_manager: Arc<dyn SourceManager>, ) -> Result<Box<Module>, Report>

Parse (or convert) self into an executable Module. Read more
Source§

impl Parse for &Module

Source§

fn parse_with_options( self, source_manager: Arc<dyn SourceManager>, options: ParseOptions, ) -> Result<Box<Module>, Report>

Parse (or convert) self into a Module using the provided options. Read more
Source§

fn parse( self, source_manager: Arc<dyn SourceManager>, ) -> Result<Box<Module>, Report>

Parse (or convert) self into an executable Module. Read more
Source§

impl PartialEq for Module

Source§

fn eq(&self, other: &Module) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PrettyPrint for Module

The pretty-printer for Module

Source§

fn render(&self) -> Document

The core of the PrettyPrint functionality. Read more
Source§

fn to_pretty_string(&self) -> String

Produce a String containing the results of pretty-printing this object. Read more
Source§

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

Pretty-print this object to the given core::fmt::Formatter. Read more
Source§

impl Spanned for Module

Source§

impl SymbolTable for &Module

Source§

type SymbolIter = IntoIter<LocalSymbol>

The concrete iterator type for the container.
Source§

fn symbols( &self, source_manager: Arc<dyn SourceManager>, ) -> <&Module as SymbolTable>::SymbolIter

Get an iterator over the symbols in this symbol table, using the provided SourceManager to emit errors for symbols which are invalid/unresolvable.
Source§

fn checked_symbols( &self, source_manager: Arc<dyn SourceManager>, ) -> Result<<&Module as SymbolTable>::SymbolIter, SymbolResolutionError>

Get an iterator over the symbols in this symbol table, returning a structured error if the full symbol set cannot be represented exactly. Read more

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> AsAny for T
where T: Any + 'static,

Source§

default fn type_name(&self) -> &'static str

Source§

default fn as_any(&self) -> &(dyn Any + 'static)

Source§

default fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Source§

default fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

default fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Source§

impl<T> AttributeValue for T
where T: AsAny + CloneToUninit,

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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<From, To, Obj> Downcast<To, Obj> for From
where From: DowncastRef<To> + Is<Obj> + ?Sized, To: DowncastFrom<From, Obj> + ?Sized, Obj: ?Sized,

Source§

fn downcast(self: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To, Obj> DowncastFrom<From, Obj> for To
where From: Is<Obj> + AsAny + 'static + ?Sized, To: DowncastFromRef<From> + 'static, Obj: ?Sized,

Source§

fn downcast_from(from: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To> DowncastFromRef<From> for To
where From: AsAny + ?Sized, To: Is<From> + 'static,

Source§

impl<From, To> DowncastRef<To> for From
where To: DowncastFromRef<From> + ?Sized, From: ?Sized,

Source§

impl<T> DynPartialEq for T
where T: Any + PartialEq + 'static,

Source§

default fn dyn_eq(&self, rhs: &dyn PartialEqable) -> bool

Source§

impl<T> EmitExt for T
where T: Emit + ?Sized,

Source§

default fn write_to_stdout(&self, session: &Session) -> Result<(), Error>

Write this item to standard output, inferring the best OutputMode based on whether or not stdout is a tty or not
Source§

default fn write_to_file( &self, path: &Path, mode: OutputMode, session: &Session, ) -> Result<(), Error>

Write this item to the given file path, using mode to determine the output type
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

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

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<Trait, T> Is<Trait> for T
where T: Unsize<Trait> + ?Sized, Trait: ?Sized,

Source§

impl<T, Trait> IsObjOf<T> for Trait
where T: Is<Trait> + ?Sized, Trait: ?Sized,

Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> PartialEqable for T
where T: PartialEq + AsAny + 'static + ?Sized,

Source§

default fn equable_type_name(&self) -> &'static str

Source§

default fn eqable(&self) -> &(dyn Any + 'static)

Source§

impl<T> PassTarget for T
where T: 'static,

Source§

default fn target_name(_context: &Context) -> Option<OperationName>

Source§

default fn into_target( op: &RawEntityRef<Operation, IntrusiveLink>, ) -> EntityRef<'_, T>

Source§

default fn into_target_mut( op: &mut RawEntityRef<Operation, IntrusiveLink>, ) -> EntityMut<'_, T>

Source§

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

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToCompactString for T
where T: Display,

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
Source§

impl<From, To, Obj> TryUpcast<To, Obj> for From
where From: Is<Obj> + Upcast<To> + ?Sized, To: ?Sized, Obj: ?Sized,

Source§

fn try_upcast(self: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To, Obj> TryUpcastFrom<From, Obj> for To
where From: TryUpcast<To, Obj> + ?Sized, To: ?Sized, Obj: ?Sized,

Source§

fn try_upcast_from(from: Box<From>) -> Result<Box<To>, Box<Obj>>

Source§

impl<From, To> TryUpcastFromRef<From> for To
where From: TryUpcastRef<To> + ?Sized, To: ?Sized,

Source§

impl<From, To> TryUpcastRef<To> for From
where From: Upcast<To> + ?Sized, To: ?Sized,

Source§

impl<From, To> Upcast<To> for From
where From: Is<To> + ?Sized, To: ?Sized,

Source§

fn upcast_ref(&self) -> &To

Source§

fn upcast_mut(&mut self) -> &mut To

Source§

fn upcast(self: Box<From>) -> Box<To>

Source§

impl<From, To> UpcastFrom<From> for To
where From: Upcast<To> + ?Sized, To: ?Sized,

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T, Trait> Verifier<Trait> for T
where Trait: ?Sized,

Source§

const VACUOUS: bool = true

An implementation of Verifier sets this flag to true when its implementation is vacuous, i.e. it always succeeds and is not dependent on runtime context. Read more
Source§

default fn should_verify(&self, _context: &Context) -> bool

Checks if this verifier is applicable for the current item
Source§

default fn maybe_verify(&self, _context: &Context) -> Result<(), Report>

Applies the verifier for this item, if Verifier::should_verify returns true
Source§

default fn verify(&self, _context: &Context) -> Result<(), Report>

Applies the verifier for this item
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more