pub trait Resource: Any + 'static {
    fn name(&self) -> Cow<'_, str> { ... }
    fn read(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { ... }
    fn read_return(
        self: Rc<Self>,
        _buf: ZeroCopyBuf
    ) -> AsyncResult<(usize, ZeroCopyBuf)> { ... } 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