pub struct Coroutine { /* private fields */ }Expand description
Live, resumable coroutine bound to a server address and handler value.
Cloning shares the same underlying state across handles.
Implementations§
Source§impl Coroutine
impl Coroutine
Sourcepub fn new(address: ServerAddress, handler: Value) -> Self
pub fn new(address: ServerAddress, handler: Value) -> Self
Creates a suspended coroutine for address driven by handler.
Sourcepub fn address(&self) -> &ServerAddress
pub fn address(&self) -> &ServerAddress
Returns the server address this coroutine is bound to.
Sourcepub fn status(&self) -> CoroutineStatus
pub fn status(&self) -> CoroutineStatus
Returns the current lifecycle status.
Sourcepub fn resume(&self, cx: &mut Cx, input: Value) -> Result<Value>
pub fn resume(&self, cx: &mut Cx, input: Value) -> Result<Value>
Resumes the coroutine, delivering input and running until it yields or
finishes.
Returns the yielded value if the handler yielded, otherwise the handler’s final result. Errors if the coroutine is already done or has been cancelled.
Sourcepub fn yield_value(&self, value: Value) -> Result<Value>
pub fn yield_value(&self, value: Value) -> Result<Value>
Records value as the coroutine’s yield and returns it.
Only valid from a running coroutine; errors otherwise.
Trait Implementations§
Source§impl Object for Coroutine
impl Object for Coroutine
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 Coroutine
impl ObjectCompat for Coroutine
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.
Auto Trait Implementations§
impl !RefUnwindSafe for Coroutine
impl !UnwindSafe for Coroutine
impl Freeze for Coroutine
impl Send for Coroutine
impl Sync for Coroutine
impl Unpin for Coroutine
impl UnsafeUnpin for Coroutine
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