Struct lib_ruby_parser::nodes::Sym
source · [−]#[repr(C)]pub struct Sym {
pub name: Bytes,
pub begin_l: Option<Loc>,
pub end_l: Option<Loc>,
pub expression_l: Loc,
}
Expand description
Represents a plain symbol literal (i.e. :foo
)
Note that :
in { foo: bar }
belongs to a pair
node.
Fields
name: Bytes
Value of the symbol literal
Note that it’s a StringValue
, not a String
.
The reason is that you can get UTF-8 incompatible strings
from a valid UTF-8 source using escape sequences like "\xFF"
These “", “x”, “F”, “F” chars are valid separately, but together they construct a char with code = 255 that is invalid for UTF-8.
You can use to_string_lossy
or to_string
methods to get a raw symbol value.
begin_l: Option<Loc>
Location of the symbol begin
:foo
~
None
if symbol is a label ({ foo: 1 }
) or a part of the symbols array (%i[foo bar baz]
)
end_l: Option<Loc>
Location of the symbol end
{ 'foo': 1 }
~
None
if symbol is not a string label (:foo
) or a part of the symbols array (%i[foo bar baz]
)
expression_l: Loc
Location of the full expression
:foo
~~~~
{ foo: 1 }
~~~~
%i[foo]
~~~
Trait Implementations
impl StructuralPartialEq for Sym
Auto Trait Implementations
impl RefUnwindSafe for Sym
impl Send for Sym
impl Sync for Sym
impl Unpin for Sym
impl UnwindSafe for Sym
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more