pub struct CustomNode {
pub debug_tag: String,
pub lowerer: Option<Arc<dyn LowerDyn>>,
}Expand description
An application-defined node with custom lowering logic.
CustomNode is the escape hatch for widgets that cannot be expressed with
the built-in primitives. Provide a LowerDyn implementation to emit
arbitrary fission-ir operations.
§Example
ⓘ
let custom = CustomNode {
debug_tag: "MyCanvasWidget".to_string(),
lowerer: Some(Arc::new(MyCanvasLowerer)),
};
Node::Custom(custom)Fields§
§debug_tag: StringHuman-readable name for debugging and diagnostics.
lowerer: Option<Arc<dyn LowerDyn>>The lowering implementation (skipped during serialisation).
Trait Implementations§
Source§impl Clone for CustomNode
impl Clone for CustomNode
Source§fn clone(&self) -> CustomNode
fn clone(&self) -> CustomNode
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CustomNode
impl Debug for CustomNode
Source§impl<'de> Deserialize<'de> for CustomNode
impl<'de> Deserialize<'de> for CustomNode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CustomNode
impl !RefUnwindSafe for CustomNode
impl Send for CustomNode
impl Sync for CustomNode
impl Unpin for CustomNode
impl UnsafeUnpin for CustomNode
impl !UnwindSafe for CustomNode
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.