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>;
|
||
|
}
|
||
|
}
|
||
|
|