#[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: LocLocation of the executable here-document body
<<-`HERE`\n a\n #{42}\nHERE
~~~~~~~~~~~~~~~heredoc_end_l: LocLocation of the executable here-document end
<<-`HERE`\n a\n #{42}\nHERE
~~~~expression_l: LocLocation 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
HERETrait Implementations§
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