Struct lib_ruby_parser::nodes::Heredoc
source · #[repr(C)]pub struct Heredoc {
pub parts: Vec<Node>,
pub heredoc_body_l: Loc,
pub heredoc_end_l: Loc,
pub expression_l: Loc,
}
Expand description
Represents a here-document literal (both with and without interpolation)
It’s similar to Dstr
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 here-document body
<<-HERE\n a\n #{42}\nHERE
~~~~~~~~~~~~~~~
heredoc_end_l: Loc
Location of the here-document end
<<-HERE\n a\n #{42}\nHERE
~~~~
expression_l: Loc
Location of the here-document identifier
<<-HERE\n a\n #{42}\nHERE
~~~~~~~
Note: This is the only node (with XHeredoc
) 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 Heredoc
impl PartialEq for Heredoc
impl StructuralPartialEq for Heredoc
Auto Trait Implementations§
impl Freeze for Heredoc
impl RefUnwindSafe for Heredoc
impl Send for Heredoc
impl Sync for Heredoc
impl Unpin for Heredoc
impl UnwindSafe for Heredoc
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