Skip to main content

Node

Struct Node 

Source
pub struct Node {
Show 17 fields pub kind: NodeKindKey, pub kind_version: u32, pub pos: CanvasPoint, pub origin: Option<NodeOrigin>, pub selectable: Option<bool>, pub focusable: Option<bool>, pub draggable: Option<bool>, pub connectable: Option<bool>, pub deletable: Option<bool>, pub parent: Option<GroupId>, pub extent: Option<NodeExtent>, pub expand_parent: Option<bool>, pub size: Option<CanvasSize>, pub hidden: bool, pub collapsed: bool, pub ports: Vec<PortId>, pub data: Value,
}
Expand description

Node instance.

Fields§

§kind: NodeKindKey

Node kind identifier.

§kind_version: u32

Node kind version (for per-kind migrations).

§pos: CanvasPoint

Top-left position in canvas space.

§origin: Option<NodeOrigin>

Optional node origin override (XyFlow node.origin).

When omitted, runtime uses the global NodeGraphInteractionState.node_origin.

§selectable: Option<bool>

Whether the node can be selected (XyFlow node.selectable).

When omitted, the global NodeGraphInteractionState.elements_selectable decides.

§focusable: Option<bool>

Whether the node can receive keyboard focus (XyFlow node.focusable).

When omitted, the global NodeGraphInteractionState.nodes_focusable decides.

§draggable: Option<bool>

Whether the node can be dragged with pointer interactions (XyFlow node.draggable).

When omitted, the global NodeGraphInteractionState.nodes_draggable decides.

§connectable: Option<bool>

Whether the node can be used for creating connections via editor interactions (XyFlow node.connectable).

When omitted, the global NodeGraphInteractionState.nodes_connectable decides.

§deletable: Option<bool>

Whether the node can be deleted via editor interactions (XyFlow node.deletable).

When omitted, the global NodeGraphInteractionState.nodes_deletable decides.

§parent: Option<GroupId>

Optional group container id (subflow / parent frame).

This is an editor-structure concept (XyFlow parentId mental model) and is intentionally orthogonal to semantic subgraphs (see ADR 0126).

§extent: Option<NodeExtent>

Optional per-node movement/resize extent override.

This mirrors XyFlow’s node.extent concept. It is an editor-structure constraint (UI-facing), not a semantic graph rule.

§expand_parent: Option<bool>

Whether moving/resizing this node can expand its parent container (if any).

This mirrors XyFlow’s node.expandParent behavior.

§size: Option<CanvasSize>

Optional explicit node size in logical px at zoom=1 (semantic sizing).

The editor converts this into canvas space by dividing by the current zoom so node content remains readable under semantic zoom.

When None, the editor derives the size from measured geometry or style defaults.

§hidden: bool

Whether the node is hidden (XyFlow node.hidden).

Hidden nodes are excluded from derived geometry (hit-testing, rendering, fit-view).

§collapsed: bool

Whether the node is collapsed.

§ports: Vec<PortId>

Stable port ordering for this node (UI-facing).

§data: Value

Opaque node payload (domain-owned).

This must be preserved for unknown node kinds.

Trait Implementations§

Source§

impl Clone for Node

Source§

fn clone(&self) -> Node

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Node

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Node

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Node

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.