@@ -80,15 +80,6 @@ package wasi:io@0.2.3 {
8080 use error .{error };
8181 use poll .{pollable };
8282
83- resource input - stream {
84- blocking-read: func (len : u64 ) - > result < list <u8 >, stream-error>;
85- }
86-
87- variant stream-error {
88- last - operation - failed (error ),
89- closed ,
90- }
91-
9283 resource output - stream {
9384 check-write: func () - > result < u64 , stream-error>;
9485 write: func (contents : list <u8 >) -> result<_, stream-error>;
@@ -97,6 +88,15 @@ package wasi:io@0.2.3 {
9788 blocking-flush: func() -> result<_, stream-error>;
9889 subscribe: func() -> pollable;
9990 }
91+
92+ resource input-stream {
93+ blocking - read : func (len : u64 ) - > result < list <u8 >, stream-error>;
94+ }
95+
96+ variant stream-error {
97+ last - operation - failed (error ),
98+ closed ,
99+ }
100100 }
101101}
102102
@@ -117,64 +117,13 @@ package wasi:clocks@0.2.3 {
117117package wasi:http@0.2.2 {
118118 interface types {
119119 use wasi: clocks /monotonic -clock @0.2 .3. {duration};
120- use wasi: io /streams @0.2 .3. {input-stream, output-stream};
120+ use wasi: io /streams @0.2 .3. {output-stream};
121121 use wasi: io /poll @0.2 .3. {pollable};
122+ use wasi: io /streams @0.2 .3. {input-stream};
122123
123- resource fields {
124- from-list: static func (entries : list < tuple < field - name , field - value >> ) - > result < fields , header-error>;
125- entries: func () - > list < tuple < field - name , field-value>>;
126- }
127-
128- type field - key = string ;
129-
130- type field - name = field - key ;
131-
132- type field - value = list <u8 >;
133-
134- variant header-error {
135- invalid - syntax ,
136- forbidden ,
137- immutable ,
138- }
139-
140- type headers = fields;
141-
142- resource outgoing-request {
143- constructor (headers : headers );
144- body : func () - > result <outgoing-body >;
145- set-method: func(method: method) -> result;
146- set-path-with-query: func(path-with-query: option<string >) -> result;
147- set-scheme: func(scheme: option<scheme >) -> result;
148- set-authority: func(authority: option<string >) -> result;
149- }
150-
151- resource outgoing-body {
152- write : func () - > result <output-stream >;
153- finish: static func(this: outgoing-body, trailers: option<trailers >) -> result<_, error-code>;
154- }
155-
156- variant method {
157- get ,
158- head ,
159- post ,
160- put ,
161- delete ,
162- connect ,
163- options ,
164- trace ,
165- patch ,
166- other (string ),
167- }
168-
169- variant scheme {
170- HTTP ,
171- HTTPS ,
172- other (string ),
173- }
174-
175- resource request-options {
176- constructor ();
177- set - connect - timeout : func (duration : option <duration >) -> result;
124+ resource future - incoming - response {
125+ subscribe: func () - > pollable ;
126+ get : func () - > option < result < result < incoming - response , error-code>>>;
178127 }
179128
180129 resource incoming - response {
@@ -183,14 +132,6 @@ package wasi:http@0.2.2 {
183132 consume : func () - > result <incoming-body >;
184133 }
185134
186- type status-code = u16;
187-
188- resource incoming-body {
189- % stream : func () - > result <input-stream >;
190- }
191-
192- type trailers = fields;
193-
194135 record DNS-error-payload {
195136 rcode : option <string >,
196137 info-code: option<u16 >,
@@ -248,9 +189,69 @@ package wasi:http@0.2.2 {
248189 internal-error(option<string >),
249190 }
250191
251- resource future-incoming-response {
252- subscribe : func () - > pollable ;
253- get : func () - > option < result < result < incoming - response , error - code >>> ;
192+ resource fields {
193+ from - list : static func (entries : list < tuple < field - name , field - value >> ) - > result < fields , header - error > ;
194+ entries : func () - > list < tuple < field - name , field - value >> ;
195+ }
196+
197+ type field-key = string;
198+
199+ type field-name = field-key;
200+
201+ type field-value = list<u8 >;
202+
203+ variant header-error {
204+ invalid - syntax ,
205+ forbidden ,
206+ immutable ,
207+ }
208+
209+ type headers = fields;
210+
211+ resource outgoing-request {
212+ constructor (headers : headers );
213+ body : func () - > result <outgoing-body >;
214+ set-method: func(method: method) -> result;
215+ set-path-with-query: func(path-with-query: option<string >) -> result;
216+ set-scheme: func(scheme: option<scheme >) -> result;
217+ set-authority: func(authority: option<string >) -> result;
218+ }
219+
220+ variant method {
221+ get ,
222+ head ,
223+ post ,
224+ put ,
225+ delete ,
226+ connect ,
227+ options ,
228+ trace ,
229+ patch ,
230+ other (string ),
231+ }
232+
233+ variant scheme {
234+ HTTP ,
235+ HTTPS ,
236+ other (string ),
237+ }
238+
239+ resource outgoing-body {
240+ write : func () - > result <output-stream >;
241+ finish: static func(this: outgoing-body, trailers: option<trailers >) -> result<_, error-code>;
242+ }
243+
244+ resource request-options {
245+ constructor ();
246+ set - connect - timeout : func (duration : option <duration >) -> result;
247+ }
248+
249+ type trailers = fields;
250+
251+ type status-code = u16;
252+
253+ resource incoming-body {
254+ % stream : func () - > result <input-stream >;
254255 }
255256 }
256257 interface outgoing-handler {
@@ -288,9 +289,8 @@ package wasi:cli@0.2.3 {
288289
289290package wasi:filesystem@0.2.3 {
290291 interface types {
291- use wasi: io /streams @0.2 .3. {output-stream};
292+ use wasi: io /streams @0.2 .3. {error, output-stream};
292293 use wasi: clocks /wall -clock @0.2 .3. {datetime};
293- use wasi: io /streams @0.2 .3. {error};
294294
295295 resource descriptor {
296296 write-via-stream: func (offset : filesize ) - > result < output - stream , error-code>;
@@ -299,8 +299,6 @@ package wasi:filesystem@0.2.3 {
299299 stat: func () - > result < descriptor - stat , error-code>;
300300 }
301301
302- type filesize = u64 ;
303-
304302 enum error - code {
305303 access ,
306304 would-block ,
@@ -341,6 +339,8 @@ package wasi:filesystem@0.2.3 {
341339 cross-device ,
342340 }
343341
342+ type filesize = u64 ;
343+
344344 enum descriptor - type {
345345 unknown ,
346346 block-device ,
0 commit comments