Enum tagua_parser::ast::Name
[−]
[src]
pub enum Name<'a> { Unqualified(&'a [u8]), Qualified(Vec<&'a [u8]>), RelativeQualified(Vec<&'a [u8]>), FullyQualified(Vec<&'a [u8]>), }
A name represents an entity name.
Variants
Unqualified(&'a [u8])
An unqualified name, i.e. a name without a namespace, like Bar
.
Examples
use tagua_parser::Result; use tagua_parser::ast::Name; use tagua_parser::rules::tokens::qualified_name; assert_eq!( qualified_name(b"Bar"), Result::Done(&b""[..], Name::Unqualified(&b"Bar"[..])) );
Qualified(Vec<&'a [u8]>)
A qualified name, i.e. a name in a relative namespace (aliased or not),
like Foo\Bar
.
Examples
use tagua_parser::Result; use tagua_parser::ast::Name; use tagua_parser::rules::tokens::qualified_name; assert_eq!( qualified_name(b"Foo\\Bar"), Result::Done(&b""[..], Name::Qualified(vec![&b"Foo"[..], &b"Bar"[..]])) );
RelativeQualified(Vec<&'a [u8]>)
A relative qualified name, i.e. a name in a relative namespace
restricted to the current namespace, like namespace\Foo\Bar
.
Examples
use tagua_parser::Result; use tagua_parser::ast::Name; use tagua_parser::rules::tokens::qualified_name; assert_eq!( qualified_name(b"namespace\\Foo\\Bar"), Result::Done(&b""[..], Name::RelativeQualified(vec![&b"Foo"[..], &b"Bar"[..]])) );
Note that the namespace
part is not present.
FullyQualified(Vec<&'a [u8]>)
A fully qualified name, i.e. a name in an absolute namespace, like
\Foo\Bar
.
Examples
use tagua_parser::Result; use tagua_parser::ast::Name; use tagua_parser::rules::tokens::qualified_name; assert_eq!( qualified_name(b"\\Foo\\Bar"), Result::Done(&b""[..], Name::FullyQualified(vec![&b"Foo"[..], &b"Bar"[..]])) );
Note that the leading \
part is not present.