Skip to main content

Node

Struct Node 

Source
pub struct Node {
    pub id: NodeId,
    pub intent: String,
    pub note: Option<String>,
    pub stations: Vec<Station>,
    pub reached: bool,
}
Expand description

A place: a room, a courtyard, an arena, a stretch of shore, a cavern.

Fields§

§id: NodeId

Node id (node/<kebab>), unique within the graph.

§intent: String

What this place is for, in the author’s own words.

A free non-empty label — arena, hub, vista, gate-house, shortcut-landing — that no check keys on. It is recorded judgement for the reviewer and for the later per-place briefs, and it is kept free-form deliberately: an enum of intents would be this month’s genre wearing a schema’s clothes.

§note: Option<String>

Anything the reviewer needs that intent does not carry.

§stations: Vec<Station>

The named places inside this one (spec-0052 §3).

A site-plan campaign’s anchor vocabulary is otherwise exactly the synthesized set — spawn, one anchor per node, and the seam and unlock anchors of barred edges — which is complete only for the authoring order it was designed for: quests written against nodes before any piece exists. The inverse order is real, and its quest layer names places inside places: the fire pit in the camp, the aft deck of the galley. Those names are the campaign’s design, and flattening them onto box centres un-writes its spatial script.

A station is a name and a shape, never a position (§5): while the box is massed the derivation realizes each station at a stand-in of its own, and when a piece is bound the detail-plan anchors map re-binds it to an anchor of that piece, which is where the name gets its real place. There is no coordinate, offset or hint field here, and that absence is the design rather than an omission.

Declared names join the campaign vocabulary at the same authority as every synthesized one — crate::siteplan::synthesized_anchors is still the single place the question is answered, so a name that validates cannot fail to exist in the built world.

§reached: bool

Whether a body reaches this place (spec-0098 §14, a ruling). false declares the place scenery — a box built to be seen and never entered, a tree’s crown over a treehouse — and the checks confirm that intent both ways: the closure must not reach it (DW0816) and no body may get into it in the built world (DW0837), exactly as a reached place must be reached. Absent means reached.

Trait Implementations§

Source§

impl Clone for Node

Source§

fn clone(&self) -> Self

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 JsonSchema for Node

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for Node

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. 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
Source§

impl StructuralPartialEq for Node

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.