Types
use resource input-streamsince 0.2.0
An input bytestream.
input-streams are non-blocking to the extent practical on underlying
platforms. I/O operations always return promptly; if fewer bytes are
promptly available than requested, they return the number of bytes promptly
available, which could even be zero. To wait for data to be available,
use the subscribe function to obtain a pollable which can be polled
for using wasi:io/poll.
read: func(len: u64) -> result<list<u8>, stream-error>since 0.2.0Perform a non-blocking read from the stream.
When the source of a
readis binary data, the bytes from the source are returned verbatim. When the source of areadis known to the implementation to be text, bytes containing the UTF-8 encoding of the text are returned.This function returns a list of bytes containing the read data, when successful. The returned list will contain up to
lenbytes; it may return fewer than requested, but not more. The list is empty when no bytes are available for reading at this time. The pollable given bysubscribewill be ready when more bytes are available.This function fails with a
stream-errorwhen the operation encounters an error, givinglast-operation-failed, or when the stream is closed, givingclosed.When the caller gives a
lenof 0, it represents a request to read 0 bytes. If the stream is still open, this call should succeed and return an empty list, or otherwise fail withclosed.The
lenparameter is au64, which could represent a list of u8 which is not possible to allocate in wasm32, or not desirable to allocate as as a return value by the callee. The callee may return a list of bytes less thanlenin size while more bytes are available for reading.blocking-read: func(len: u64) -> result<list<u8>, stream-error>since 0.2.0Read bytes from a stream, after blocking until at least one byte can be read. Except for blocking, behavior is identical to
read.skip: func(len: u64) -> result<u64, stream-error>since 0.2.0Skip bytes from a stream. Returns number of bytes skipped.
Behaves identical to
read, except instead of returning a list of bytes, returns the number of bytes consumed from the stream.blocking-skip: func(len: u64) -> result<u64, stream-error>since 0.2.0Skip bytes from a stream, after blocking until at least one byte can be skipped. Except for blocking behavior, identical to
skip.subscribe: func() -> pollablesince 0.2.0Create a
pollablewhich will resolve once either the specified stream has bytes available to read or the other end of the stream has been closed. The createdpollableis a child resource of theinput-stream. Implementations may trap if theinput-streamis dropped before all derivedpollables created with this function are dropped.
Functions
get-stdin: func() -> input-streamsince 0.2.0
WIT
@since(version = 0.2.0)
interface stdin {
@since(version = 0.2.0)
use wasi:io/streams@0.2.3.{input-stream};
@since(version = 0.2.0)
get-stdin: func() -> input-stream;
}