Skip to main content

GraphNodeConstructor

Struct GraphNodeConstructor 

Source
pub struct GraphNodeConstructor<Node, Ctx> {
    pub default: Constructor<Node>,
    pub variants: Vec<Variant<Node, Ctx>>,
    pub group: &'static str,
    pub assembly_name: &'static str,
}
Expand description

Node constructor creates scene nodes in various states.

Fields§

§default: Constructor<Node>

A boxed type constructor that returns a node in default state. This constructor is used at deserialization stage.

§variants: Vec<Variant<Node, Ctx>>

A set of node constructors that returns specific variants of the same node type. Could be used to pre-define specific variations of nodes, for example a Mesh node could have different surfaces (sphere, cube, cone, etc.). It is used by the editor, this collection must have at least one item to be shown in the editor.

§group: &'static str

Name of the group the type belongs to.

§assembly_name: &'static str

A name of the assembly this node constructor is from.

Implementations§

Source§

impl<Node, Ctx> GraphNodeConstructor<Node, Ctx>

Source

pub fn new<Inner>() -> Self
where Node: From<Inner>, Inner: ConstructorProvider<Node, Ctx>,

Creates a new node constructor with default values for the given scene node type. This method automatically creates default constructor, but leaves potential variants empty (nothing will be shown in the editor, use Self::with_variant to add potential variant of the constructor).

Source

pub fn with_group(self, group: &'static str) -> Self

Sets a desired group for the constructor.

Source

pub fn with_variant<F>(self, name: impl AsRef<str>, variant: F) -> Self
where F: Fn(&mut Ctx) -> VariantResult<Node> + Send + Sync + 'static,

Adds a new constructor variant.

Auto Trait Implementations§

§

impl<Node, Ctx> Freeze for GraphNodeConstructor<Node, Ctx>

§

impl<Node, Ctx> !RefUnwindSafe for GraphNodeConstructor<Node, Ctx>

§

impl<Node, Ctx> Send for GraphNodeConstructor<Node, Ctx>

§

impl<Node, Ctx> Sync for GraphNodeConstructor<Node, Ctx>

§

impl<Node, Ctx> Unpin for GraphNodeConstructor<Node, Ctx>

§

impl<Node, Ctx> UnsafeUnpin for GraphNodeConstructor<Node, Ctx>

§

impl<Node, Ctx> !UnwindSafe for GraphNodeConstructor<Node, Ctx>

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

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

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> 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, U> ObjectOrVariant<T> for U

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V