pub struct Node {
pub role: Role,
pub parent: Option<NodeId>,
pub first_child: Option<NodeId>,
pub last_child: Option<NodeId>,
pub next_sibling: Option<NodeId>,
pub style: StyleId,
pub text: TextRange,
}Expand description
A node in the IR tree.
Fields§
§role: RoleSemantic role.
parent: Option<NodeId>Parent node (None for root).
first_child: Option<NodeId>First child node.
last_child: Option<NodeId>Last child node. Maintained by Chapter::append_child so appends are
O(1); it is only guaranteed accurate during tree construction. The
optimizer passes rewire siblings directly and do not append afterward,
so they intentionally leave this field alone.
next_sibling: Option<NodeId>Next sibling node.
style: StyleIdStyle identifier.
text: TextRangeText content range (only for Text nodes).
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Node
impl RefUnwindSafe for Node
impl Send for Node
impl Sync for Node
impl Unpin for Node
impl UnsafeUnpin for Node
impl UnwindSafe for Node
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more