1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use nu_protocol::hir::Block; use nu_source::Spanned; use std::{fmt::Debug, sync::Arc}; pub trait ParserScope: Debug { fn get_signature(&self, name: &str) -> Option<nu_protocol::Signature>; fn has_signature(&self, name: &str) -> bool; fn add_definition(&self, block: Arc<Block>); fn get_definitions(&self) -> Vec<Arc<Block>>; fn get_alias(&self, name: &str) -> Option<Vec<Spanned<String>>>; fn add_alias(&self, name: &str, replacement: Vec<Spanned<String>>); fn enter_scope(&self); fn exit_scope(&self); }