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.
fn read(self: Rc<Self>, _buf: ZeroCopyBuf) -> AsyncResult<usize>
fn read(self: Rc<Self>, _buf: ZeroCopyBuf) -> AsyncResult<usize>
Resources may implement read()
to be a readable stream
fn write(self: Rc<Self>, _buf: ZeroCopyBuf) -> AsyncResult<usize>
fn write(self: Rc<Self>, _buf: ZeroCopyBuf) -> AsyncResult<usize>
Resources may implement write()
to be a writable stream
fn shutdown(self: Rc<Self>) -> AsyncResult<()>
fn shutdown(self: Rc<Self>) -> AsyncResult<()>
Resources may implement shutdown()
for graceful async shutdowns