pub trait Resource: Any + 'static {
    fn name(&self) -> Cow<'_, str> { ... }
    fn read(self: Rc<Self>, _buf: ZeroCopyBuf) -> AsyncResult<usize> { ... }
    fn write(self: Rc<Self>, _buf: ZeroCopyBuf) -> AsyncResult<usize> { ... }
    fn shutdown(self: Rc<Self>) -> AsyncResult<()> { ... }
    fn close(self: Rc<Self>) { ... }
}
Expand description

All objects that can be store in the resource table should implement the Resource trait. TODO(@AaronO): investigate avoiding alloc on read/write/shutdown

Provided Methods

Returns a string representation of the resource which is made available to JavaScript code through op_resources. The default implementation returns the Rust type name, but specific resource types may override this trait method.

Resources may implement read() to be a readable stream

Resources may implement write() to be a writable stream

Resources may implement shutdown() for graceful async shutdowns

Resources may implement the close() trait method if they need to do resource specific clean-ups, such as cancelling pending futures, after a resource has been removed from the resource table.

Implementations

Implementors