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§
source§impl PartialEq for XHeredoc
impl PartialEq for XHeredoc
impl StructuralPartialEq for XHeredoc
Auto Trait Implementations§
impl Freeze for XHeredoc
impl RefUnwindSafe for XHeredoc
impl Send for XHeredoc
impl Sync for XHeredoc
impl Unpin for XHeredoc
impl UnwindSafe for XHeredoc
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