Struct nu_protocol::engine::StateWorkingSet
source · [−]pub struct StateWorkingSet<'a> {
pub permanent_state: &'a EngineState,
pub delta: StateDelta,
pub external_commands: Vec<Vec<u8>>,
pub type_scope: TypeScope,
pub currently_parsed_cwd: Option<PathBuf>,
pub parsed_module_files: Vec<PathBuf>,
}
Expand description
A temporary extension to the global state. This handles bridging between the global state and the additional declarations and scope changes that are not yet part of the global scope.
This working set is created by the parser as a way of handling declarations and scope changes that may later be merged or dropped (and not merged) depending on the needs of the code calling the parser.
Fields
permanent_state: &'a EngineState
delta: StateDelta
external_commands: Vec<Vec<u8>>
type_scope: TypeScope
currently_parsed_cwd: Option<PathBuf>
Current working directory relative to the file being parsed right now
parsed_module_files: Vec<PathBuf>
All previously parsed module files. Used to protect against circular imports.
Implementations
sourceimpl<'a> StateWorkingSet<'a>
impl<'a> StateWorkingSet<'a>
pub fn new(permanent_state: &'a EngineState) -> Self
pub fn num_files(&self) -> usize
pub fn num_decls(&self) -> usize
pub fn num_aliases(&self) -> usize
pub fn num_blocks(&self) -> usize
pub fn num_modules(&self) -> usize
pub fn unique_overlay_names(&self) -> HashSet<&Vec<u8>>
pub fn num_overlays(&self) -> usize
pub fn add_decl(&mut self, decl: Box<dyn Command>) -> DeclId
pub fn use_decls(&mut self, decls: Vec<(Vec<u8>, DeclId)>)
pub fn use_aliases(&mut self, aliases: Vec<(Vec<u8>, AliasId)>)
pub fn add_predecl(&mut self, decl: Box<dyn Command>) -> Option<DeclId>
pub fn merge_predecl(&mut self, name: &[u8]) -> Option<DeclId>
pub fn move_predecls_to_overlay(&mut self)
pub fn hide_decl(&mut self, name: &[u8]) -> Option<DeclId>
pub fn use_alias(&mut self, alias_id: &AliasId)
pub fn hide_alias(&mut self, name: &[u8]) -> Option<AliasId>
pub fn hide_decls(&mut self, decls: &[Vec<u8>])
pub fn hide_aliases(&mut self, aliases: &[Vec<u8>])
pub fn add_block(&mut self, block: Block) -> BlockId
pub fn add_module(&mut self, name: &str, module: Module) -> ModuleId
pub fn next_span_start(&self) -> usize
pub fn global_span_offset(&self) -> usize
pub fn files(&'a self) -> impl Iterator<Item = &'_ (String, usize, usize)>
pub fn get_filename(&self, file_id: usize) -> String
pub fn get_file_source(&self, file_id: usize) -> String
pub fn add_file(&mut self, filename: String, contents: &[u8]) -> usize
pub fn get_span_contents(&self, span: Span) -> &[u8]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
pub fn enter_scope(&mut self)
pub fn exit_scope(&mut self)
pub fn find_predecl(&self, name: &[u8]) -> Option<DeclId>
pub fn find_decl(&self, name: &[u8], input: &Type) -> Option<DeclId>
pub fn find_alias(&self, name: &[u8]) -> Option<AliasId>
pub fn find_module(&self, name: &[u8]) -> Option<ModuleId>
pub fn contains_decl_partial_match(&self, name: &[u8]) -> bool
pub fn next_var_id(&self) -> VarId
pub fn find_variable(&self, name: &[u8]) -> Option<VarId>
pub fn add_variable(&mut self, name: Vec<u8>, span: Span, ty: Type) -> VarId
pub fn add_alias(&mut self, name: Vec<u8>, replacement: Vec<Span>)
pub fn get_cwd(&self) -> String
pub fn get_env_var(&self, name: &str) -> Option<&Value>
pub fn get_config(&self) -> &Config
pub fn list_env(&self) -> Vec<String>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn set_variable_type(&mut self, var_id: VarId, ty: Type)
pub fn get_variable(&self, var_id: VarId) -> &Variable
pub fn get_decl(&self, decl_id: DeclId) -> &Box<dyn Command>
pub fn get_decl_mut(&mut self, decl_id: DeclId) -> &mut Box<dyn Command>
pub fn get_alias(&self, alias_id: AliasId) -> &[Span]
pub fn find_commands_by_predicate(
&self,
predicate: impl Fn(&[u8]) -> bool
) -> Vec<(Vec<u8>, Option<String>)>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn find_aliases_by_predicate(
&self,
predicate: impl Fn(&[u8]) -> bool + Copy
) -> Vec<Vec<u8>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn get_block(&self, block_id: BlockId) -> &Block
pub fn get_module(&self, module_id: ModuleId) -> &Module
pub fn get_block_mut(&mut self, block_id: BlockId) -> &mut Block
pub fn has_overlay(&self, name: &[u8]) -> bool
pub fn find_overlay(&self, name: &[u8]) -> Option<&OverlayFrame>
pub fn last_overlay_name(&self) -> &Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
pub fn last_overlay(&self) -> &OverlayFrame
pub fn last_overlay_mut(&mut self) -> &mut OverlayFrame
sourcepub fn decls_of_overlay(&self, name: &[u8]) -> HashMap<Vec<u8>, DeclId>
pub fn decls_of_overlay(&self, name: &[u8]) -> HashMap<Vec<u8>, DeclId>
Collect all decls that belong to an overlay
sourcepub fn aliases_of_overlay(&self, name: &[u8]) -> HashMap<Vec<u8>, DeclId>
pub fn aliases_of_overlay(&self, name: &[u8]) -> HashMap<Vec<u8>, DeclId>
Collect all aliases that belong to an overlay
pub fn add_overlay(
&mut self,
name: Vec<u8>,
origin: ModuleId,
decls: Vec<(Vec<u8>, DeclId)>,
aliases: Vec<(Vec<u8>, AliasId)>,
prefixed: bool
)
pub fn remove_overlay(&mut self, name: &[u8], keep_custom: bool)
pub fn render(self) -> StateDelta
Trait Implementations
sourceimpl<'a> SourceCode for &StateWorkingSet<'a>
impl<'a> SourceCode for &StateWorkingSet<'a>
sourcefn read_span<'b>(
&'b self,
span: &SourceSpan,
context_lines_before: usize,
context_lines_after: usize
) -> Result<Box<dyn SpanContents<'_> + 'b>, MietteError>
fn read_span<'b>(
&'b self,
span: &SourceSpan,
context_lines_before: usize,
context_lines_after: usize
) -> Result<Box<dyn SpanContents<'_> + 'b>, MietteError>
Read the bytes for a specific span from this SourceCode, keeping a
certain number of lines before and after the span as context. Read more
Auto Trait Implementations
impl<'a> !RefUnwindSafe for StateWorkingSet<'a>
impl<'a> Send for StateWorkingSet<'a>
impl<'a> Sync for StateWorkingSet<'a>
impl<'a> Unpin for StateWorkingSet<'a>
impl<'a> !UnwindSafe for StateWorkingSet<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<D> OwoColorize for D
impl<D> OwoColorize for D
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Set the foreground color generically Read more
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Set the background color generically. Read more
fn black(&'a self) -> FgColorDisplay<'a, Black, Self>
fn black(&'a self) -> FgColorDisplay<'a, Black, Self>
Change the foreground color to black
fn on_black(&'a self) -> BgColorDisplay<'a, Black, Self>
fn on_black(&'a self) -> BgColorDisplay<'a, Black, Self>
Change the background color to black
fn red(&'a self) -> FgColorDisplay<'a, Red, Self>
fn red(&'a self) -> FgColorDisplay<'a, Red, Self>
Change the foreground color to red
fn on_red(&'a self) -> BgColorDisplay<'a, Red, Self>
fn on_red(&'a self) -> BgColorDisplay<'a, Red, Self>
Change the background color to red
fn green(&'a self) -> FgColorDisplay<'a, Green, Self>
fn green(&'a self) -> FgColorDisplay<'a, Green, Self>
Change the foreground color to green
fn on_green(&'a self) -> BgColorDisplay<'a, Green, Self>
fn on_green(&'a self) -> BgColorDisplay<'a, Green, Self>
Change the background color to green
fn yellow(&'a self) -> FgColorDisplay<'a, Yellow, Self>
fn yellow(&'a self) -> FgColorDisplay<'a, Yellow, Self>
Change the foreground color to yellow
fn on_yellow(&'a self) -> BgColorDisplay<'a, Yellow, Self>
fn on_yellow(&'a self) -> BgColorDisplay<'a, Yellow, Self>
Change the background color to yellow
fn blue(&'a self) -> FgColorDisplay<'a, Blue, Self>
fn blue(&'a self) -> FgColorDisplay<'a, Blue, Self>
Change the foreground color to blue
fn on_blue(&'a self) -> BgColorDisplay<'a, Blue, Self>
fn on_blue(&'a self) -> BgColorDisplay<'a, Blue, Self>
Change the background color to blue
fn magenta(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn magenta(&'a self) -> FgColorDisplay<'a, Magenta, Self>
Change the foreground color to magenta
fn on_magenta(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_magenta(&'a self) -> BgColorDisplay<'a, Magenta, Self>
Change the background color to magenta
fn purple(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn purple(&'a self) -> FgColorDisplay<'a, Magenta, Self>
Change the foreground color to purple
fn on_purple(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_purple(&'a self) -> BgColorDisplay<'a, Magenta, Self>
Change the background color to purple
fn cyan(&'a self) -> FgColorDisplay<'a, Cyan, Self>
fn cyan(&'a self) -> FgColorDisplay<'a, Cyan, Self>
Change the foreground color to cyan
fn on_cyan(&'a self) -> BgColorDisplay<'a, Cyan, Self>
fn on_cyan(&'a self) -> BgColorDisplay<'a, Cyan, Self>
Change the background color to cyan
fn white(&'a self) -> FgColorDisplay<'a, White, Self>
fn white(&'a self) -> FgColorDisplay<'a, White, Self>
Change the foreground color to white
fn on_white(&'a self) -> BgColorDisplay<'a, White, Self>
fn on_white(&'a self) -> BgColorDisplay<'a, White, Self>
Change the background color to white
fn default_color(&'a self) -> FgColorDisplay<'a, Default, Self>
fn default_color(&'a self) -> FgColorDisplay<'a, Default, Self>
Change the foreground color to the terminal default
fn on_default_color(&'a self) -> BgColorDisplay<'a, Default, Self>
fn on_default_color(&'a self) -> BgColorDisplay<'a, Default, Self>
Change the background color to the terminal default
fn bright_black(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
fn bright_black(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
Change the foreground color to bright black
fn on_bright_black(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
fn on_bright_black(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
Change the background color to bright black
fn bright_red(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
fn bright_red(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
Change the foreground color to bright red
fn on_bright_red(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
fn on_bright_red(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
Change the background color to bright red
fn bright_green(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
fn bright_green(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
Change the foreground color to bright green
fn on_bright_green(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
fn on_bright_green(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
Change the background color to bright green
fn bright_yellow(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
fn bright_yellow(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
Change the foreground color to bright yellow
fn on_bright_yellow(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
fn on_bright_yellow(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
Change the background color to bright yellow
fn bright_blue(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
fn bright_blue(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
Change the foreground color to bright blue
fn on_bright_blue(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
fn on_bright_blue(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
Change the background color to bright blue
fn bright_magenta(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_magenta(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
Change the foreground color to bright magenta
fn on_bright_magenta(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_magenta(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
Change the background color to bright magenta
fn bright_purple(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_purple(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
Change the foreground color to bright purple
fn on_bright_purple(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_purple(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
Change the background color to bright purple
fn bright_cyan(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
fn bright_cyan(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
Change the foreground color to bright cyan
fn on_bright_cyan(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
fn on_bright_cyan(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
Change the background color to bright cyan
fn bright_white(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
fn bright_white(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
Change the foreground color to bright white
fn on_bright_white(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
fn on_bright_white(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
Change the background color to bright white
fn bold(&'a self) -> BoldDisplay<'a, Self>
fn bold(&'a self) -> BoldDisplay<'a, Self>
Make the text bold
fn dimmed(&'a self) -> DimDisplay<'a, Self>
fn dimmed(&'a self) -> DimDisplay<'a, Self>
Make the text dim
fn italic(&'a self) -> ItalicDisplay<'a, Self>
fn italic(&'a self) -> ItalicDisplay<'a, Self>
Make the text italicized
fn underline(&'a self) -> UnderlineDisplay<'a, Self>
fn underline(&'a self) -> UnderlineDisplay<'a, Self>
Make the text italicized
fn blink(&'a self) -> BlinkDisplay<'a, Self>
fn blink(&'a self) -> BlinkDisplay<'a, Self>
Make the text blink
fn blink_fast(&'a self) -> BlinkFastDisplay<'a, Self>
fn blink_fast(&'a self) -> BlinkFastDisplay<'a, Self>
Make the text blink (but fast!)
fn reversed(&'a self) -> ReversedDisplay<'a, Self>
fn reversed(&'a self) -> ReversedDisplay<'a, Self>
Swap the foreground and background colors
Hide the text
fn strikethrough(&'a self) -> StrikeThroughDisplay<'a, Self>
fn strikethrough(&'a self) -> StrikeThroughDisplay<'a, Self>
Cross out the text
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
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 morefn 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,
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 morefn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
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.
fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
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.
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.