Struct lib_ruby_parser::nodes::XHeredoc
source · [−]#[repr(C)]pub struct XHeredoc {
pub parts: Vec<Node>,
pub heredoc_body_l: Loc,
pub heredoc_end_l: Loc,
pub expression_l: Loc,
}
Expand description
Represents a executable here-document literal (both with and without interpolation)
It’s similar to Xstr
in terms of abstract syntax tree, but has different source maps.
Fields
parts: Vec<Node>
A list of string parts (static literals and interpolated expressions)
heredoc_body_l: Loc
Location of the executable here-document body
<<-`HERE`\n a\n #{42}\nHERE
~~~~~~~~~~~~~~~
heredoc_end_l: Loc
Location of the executable here-document end
<<-`HERE`\n a\n #{42}\nHERE
~~~~
expression_l: Loc
Location of the executable here-document identifier
<<-`HERE`\n a\n #{42}\nHERE
~~~~~~~
Note: This is the only node (with Heredoc
) that has expression_l
smaller that all other sub-locations merged.
The reason for that is that it’s possible to add more code after here-document ID:
<<-`HERE` + "rest"
content
HERE
Trait Implementations
impl StructuralPartialEq for XHeredoc
Auto Trait Implementations
impl RefUnwindSafe for XHeredoc
impl Send for XHeredoc
impl Sync for XHeredoc
impl Unpin for XHeredoc
impl UnwindSafe for XHeredoc
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)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more