teo-parser 0.3.0

Parser for Teo schema language
Documentation
use crate::traits::has_availability::HasAvailability;
use crate::traits::identifiable::Identifiable;
use crate::traits::named_identifiable::NamedIdentifiable;

pub trait InfoProvider: Identifiable + NamedIdentifiable + HasAvailability {

    fn namespace_skip(&self) -> usize;

    fn namespace_str_path(&self) -> Vec<&str> {
        self.string_path().iter().rev().skip(self.namespace_skip()).rev().map(AsRef::as_ref).collect()
    }

    fn namespace_string_path(&self) -> Vec<String> {
        self.string_path().iter().rev().skip(self.namespace_skip()).rev().map(|s| s.to_owned()).collect()
    }

    fn namespace_path(&self) -> Vec<usize> {
        self.path().iter().rev().skip(self.namespace_skip()).rev().map(|u| *u).collect()
    }
}