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; 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: Block); fn get_definitions(&self) -> Vec<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); }