49 lines
1.4 KiB
Plaintext
49 lines
1.4 KiB
Plaintext
package wasi:io@0.2.0;
|
|
|
|
interface poll {
|
|
resource pollable {
|
|
ready: func() -> bool;
|
|
block: func();
|
|
}
|
|
|
|
poll: func(in: list<borrow<pollable>>) -> list<u32>;
|
|
}
|
|
|
|
interface error {
|
|
resource error {
|
|
to-debug-string: func() -> string;
|
|
}
|
|
}
|
|
|
|
interface streams {
|
|
use error.{error};
|
|
use poll.{pollable};
|
|
|
|
variant stream-error {
|
|
last-operation-failed(error),
|
|
closed,
|
|
}
|
|
|
|
resource input-stream {
|
|
read: func(len: u64) -> result<list<u8>, stream-error>;
|
|
blocking-read: func(len: u64) -> result<list<u8>, stream-error>;
|
|
skip: func(len: u64) -> result<u64, stream-error>;
|
|
blocking-skip: func(len: u64) -> result<u64, stream-error>;
|
|
subscribe: func() -> pollable;
|
|
}
|
|
|
|
resource output-stream {
|
|
check-write: func() -> result<u64, stream-error>;
|
|
write: func(contents: list<u8>) -> result<_, stream-error>;
|
|
blocking-write-and-flush: func(contents: list<u8>) -> result<_, stream-error>;
|
|
flush: func() -> result<_, stream-error>;
|
|
blocking-flush: func() -> result<_, stream-error>;
|
|
subscribe: func() -> pollable;
|
|
write-zeroes: func(len: u64) -> result<_, stream-error>;
|
|
blocking-write-zeroes-and-flush: func(len: u64) -> result<_, stream-error>;
|
|
splice: func(src: borrow<input-stream>, len: u64) -> result<u64, stream-error>;
|
|
blocking-splice: func(src: borrow<input-stream>, len: u64) -> result<u64, stream-error>;
|
|
}
|
|
}
|
|
|