pub struct ShapeObject {
pub symbol: Symbol,
pub shape: Arc<dyn Shape>,
pub encoding: Option<ObjectEncoding>,
}Expand description
Runtime object wrapping a Shape so it is usable as a first-class value:
a callable matcher, a kernel class, and (optionally) a re-encodable
constructor expression.
Fields§
§symbol: SymbolSymbol naming the wrapped shape.
shape: Arc<dyn Shape>The wrapped shape engine.
encoding: Option<ObjectEncoding>Constructor encoding used to round-trip the shape back to an expression.
Implementations§
Source§impl ShapeObject
impl ShapeObject
Trait Implementations§
Source§impl Callable for ShapeObject
impl Callable for ShapeObject
Source§fn call(&self, cx: &mut Cx, args: Args) -> Result<Value>
fn call(&self, cx: &mut Cx, args: Args) -> Result<Value>
Invoke the callable with already-evaluated, checked
Args.Source§fn call_exprs(&self, cx: &mut Cx, args: RawArgs) -> Result<Value>
fn call_exprs(&self, cx: &mut Cx, args: RawArgs) -> Result<Value>
Invoke the callable on raw, unevaluated argument expressions. Read more
Source§impl Clone for ShapeObject
impl Clone for ShapeObject
Source§fn clone(&self) -> ShapeObject
fn clone(&self) -> ShapeObject
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Object for ShapeObject
impl Object for ShapeObject
Source§fn display(&self, cx: &mut Cx) -> Result<String>
fn display(&self, cx: &mut Cx) -> Result<String>
Render the object as a human-readable display string.
Source§fn header(&self) -> &ObjectHeader
fn header(&self) -> &ObjectHeader
Identity and trust header for the object; defaults to the shared
anonymous header.
Source§fn op(&self, _key: &OpKey) -> Option<&dyn Op>
fn op(&self, _key: &OpKey) -> Option<&dyn Op>
Resolve the operation registered under
key, if any.Source§impl ObjectCompat for ShapeObject
impl ObjectCompat for ShapeObject
Source§fn class(&self, cx: &mut Cx) -> Result<ClassRef>
fn class(&self, cx: &mut Cx) -> Result<ClassRef>
Class object this value belongs to; defaults to nil.
Source§fn as_expr(&self, _cx: &mut Cx) -> Result<Expr>
fn as_expr(&self, _cx: &mut Cx) -> Result<Expr>
Expression form of the object; defaults to an opaque extension node.
Source§fn as_table(&self, cx: &mut Cx) -> Result<Value>
fn as_table(&self, cx: &mut Cx) -> Result<Value>
Project the object into a table value; the default exposes its display.
Source§fn as_callable(&self) -> Option<&dyn Callable>
fn as_callable(&self) -> Option<&dyn Callable>
Callable view, if the object can be invoked.
Source§fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
Object-encoder view, if the object encodes other objects.
Source§fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
Read-constructor view, if the object decodes data forms.
Source§fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
Number-domain view, if the object is a number domain.
Source§fn as_number_value(&self) -> Option<&dyn NumberValue>
fn as_number_value(&self) -> Option<&dyn NumberValue>
Number-value view, if the object is a domain number.
Source§fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
Eval-fabric view, if the object is a distributed eval surface.
Source§fn as_sequence(&self) -> Option<&dyn Sequence>
fn as_sequence(&self) -> Option<&dyn Sequence>
Sequence view, if the object is a sequence.
Source§fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
List view, if the object is a list value.
Source§fn as_table_impl(&self) -> Option<&(dyn Table + 'static)>
fn as_table_impl(&self) -> Option<&(dyn Table + 'static)>
Table-implementation view, if the object is a table.
Source§fn as_dir(&self) -> Option<&(dyn Dir + 'static)>
fn as_dir(&self) -> Option<&(dyn Dir + 'static)>
Directory view, if the object is a directory.
Source§impl ObjectEncode for ShapeObject
impl ObjectEncode for ShapeObject
Source§fn object_encoding(&self, _cx: &mut Cx) -> Result<ObjectEncoding>
fn object_encoding(&self, _cx: &mut Cx) -> Result<ObjectEncoding>
Returns the
ObjectEncoding this object should be rendered as.Auto Trait Implementations§
impl !RefUnwindSafe for ShapeObject
impl !UnwindSafe for ShapeObject
impl Freeze for ShapeObject
impl Send for ShapeObject
impl Sync for ShapeObject
impl Unpin for ShapeObject
impl UnsafeUnpin for ShapeObject
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