pub struct Path { /* private fields */ }Expand description
Container-helper structure for paths in scripts.
It is used for handling use paths, as well as representing paths up to elements to build identifiers.
Implementations§
Source§impl Path
impl Path
Sourcepub fn new(version: Version, path: Vec<String>) -> Self
pub fn new(version: Version, path: Vec<String>) -> Self
Instanciates a new path.
// use main/foo/bar::Element
let raw_valid_path = vec![ "main".to_string(),
"foo".to_string(),
"bar".to_string()];
let valid_path = Path::new(Version::parse("0.1.0").unwrap(), raw_valid_path);
assert_eq!(valid_path.root(), "main");
assert!(valid_path.is_valid());Sourcepub fn path(&self) -> &Vec<String>
pub fn path(&self) -> &Vec<String>
Gives immutable reference to vector of string containing literally the path steps.
pub fn root(&self) -> String
Sourcepub fn is_valid(&self) -> bool
pub fn is_valid(&self) -> bool
Tells if the path is valid.
Currently check if at least a root is set up and no empty elements are present
Sourcepub fn to_identifier(&self, element_name: &str) -> Option<Identifier>
pub fn to_identifier(&self, element_name: &str) -> Option<Identifier>
Turn the path into an identifier.
element_name: name of the element supposed to be identified under that path.
§Warning
Return None if the path is invalid.
pub fn to_identifier_requirement( &self, element_name: &str, ) -> Option<IdentifierRequirement>
Trait Implementations§
impl StructuralPartialEq for Path
Auto Trait Implementations§
impl Freeze for Path
impl RefUnwindSafe for Path
impl Send for Path
impl Sync for Path
impl Unpin for Path
impl UnwindSafe for Path
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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