Skip to content

Commit 3858da2

Browse files
committed
Update example-world.md
1 parent dbe79fa commit 3858da2

File tree

1 file changed

+76
-77
lines changed

1 file changed

+76
-77
lines changed

example-world.md

Lines changed: 76 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -23,64 +23,6 @@
2323
This enables context-based security for networking.
2424
There is no need for this to map 1:1 to a physical network interface.
2525
<p>FYI, In the future this will be replaced by handle types.</p>
26-
<h4><a name="ipv6_address"><code>tuple ipv6-address</code></a></h4>
27-
<h5>Tuple Fields</h5>
28-
<ul>
29-
<li><a name="ipv6_address.0"><code>0</code></a>: <code>u16</code></li>
30-
<li><a name="ipv6_address.1"><code>1</code></a>: <code>u16</code></li>
31-
<li><a name="ipv6_address.2"><code>2</code></a>: <code>u16</code></li>
32-
<li><a name="ipv6_address.3"><code>3</code></a>: <code>u16</code></li>
33-
<li><a name="ipv6_address.4"><code>4</code></a>: <code>u16</code></li>
34-
<li><a name="ipv6_address.5"><code>5</code></a>: <code>u16</code></li>
35-
<li><a name="ipv6_address.6"><code>6</code></a>: <code>u16</code></li>
36-
<li><a name="ipv6_address.7"><code>7</code></a>: <code>u16</code></li>
37-
</ul>
38-
<h4><a name="ipv6_socket_address"><code>record ipv6-socket-address</code></a></h4>
39-
<h5>Record Fields</h5>
40-
<ul>
41-
<li><a name="ipv6_socket_address.port"><code>port</code></a>: <code>u16</code></li>
42-
<li><a name="ipv6_socket_address.flow_info"><code>flow-info</code></a>: <code>u32</code></li>
43-
<li><a name="ipv6_socket_address.address"><code>address</code></a>: <a href="#ipv6_address"><a href="#ipv6_address"><code>ipv6-address</code></a></a></li>
44-
<li><a name="ipv6_socket_address.scope_id"><code>scope-id</code></a>: <code>u32</code></li>
45-
</ul>
46-
<h4><a name="ipv4_address"><code>tuple ipv4-address</code></a></h4>
47-
<h5>Tuple Fields</h5>
48-
<ul>
49-
<li><a name="ipv4_address.0"><code>0</code></a>: <code>u8</code></li>
50-
<li><a name="ipv4_address.1"><code>1</code></a>: <code>u8</code></li>
51-
<li><a name="ipv4_address.2"><code>2</code></a>: <code>u8</code></li>
52-
<li><a name="ipv4_address.3"><code>3</code></a>: <code>u8</code></li>
53-
</ul>
54-
<h4><a name="ipv4_socket_address"><code>record ipv4-socket-address</code></a></h4>
55-
<h5>Record Fields</h5>
56-
<ul>
57-
<li><a name="ipv4_socket_address.port"><code>port</code></a>: <code>u16</code></li>
58-
<li><a name="ipv4_socket_address.address"><code>address</code></a>: <a href="#ipv4_address"><a href="#ipv4_address"><code>ipv4-address</code></a></a></li>
59-
</ul>
60-
<h4><a name="ip_socket_address"><code>variant ip-socket-address</code></a></h4>
61-
<h5>Variant Cases</h5>
62-
<ul>
63-
<li><a name="ip_socket_address.ipv4"><code>ipv4</code></a>: <a href="#ipv4_socket_address"><a href="#ipv4_socket_address"><code>ipv4-socket-address</code></a></a></li>
64-
<li><a name="ip_socket_address.ipv6"><code>ipv6</code></a>: <a href="#ipv6_socket_address"><a href="#ipv6_socket_address"><code>ipv6-socket-address</code></a></a></li>
65-
</ul>
66-
<h4><a name="ip_address_family"><code>enum ip-address-family</code></a></h4>
67-
<h5>Enum Cases</h5>
68-
<ul>
69-
<li>
70-
<p><a name="ip_address_family.ipv4"><code>ipv4</code></a></p>
71-
<p>Similar to `AF_INET` in POSIX.
72-
</li>
73-
<li>
74-
<p><a name="ip_address_family.ipv6"><code>ipv6</code></a></p>
75-
<p>Similar to `AF_INET6` in POSIX.
76-
</li>
77-
</ul>
78-
<h4><a name="ip_address"><code>variant ip-address</code></a></h4>
79-
<h5>Variant Cases</h5>
80-
<ul>
81-
<li><a name="ip_address.ipv4"><code>ipv4</code></a>: <a href="#ipv4_address"><a href="#ipv4_address"><code>ipv4-address</code></a></a></li>
82-
<li><a name="ip_address.ipv6"><code>ipv6</code></a>: <a href="#ipv6_address"><a href="#ipv6_address"><code>ipv6-address</code></a></a></li>
83-
</ul>
8426
<h4><a name="error_code"><code>enum error-code</code></a></h4>
8527
<p>Error codes.</p>
8628
<p>In theory, every API can return any error code.
@@ -230,6 +172,64 @@ combined with a couple of errors that are always possible:</p>
230172
<p>A permanent failure in name resolution occurred.
231173
</li>
232174
</ul>
175+
<h4><a name="ip_address_family"><code>enum ip-address-family</code></a></h4>
176+
<h5>Enum Cases</h5>
177+
<ul>
178+
<li>
179+
<p><a name="ip_address_family.ipv4"><code>ipv4</code></a></p>
180+
<p>Similar to `AF_INET` in POSIX.
181+
</li>
182+
<li>
183+
<p><a name="ip_address_family.ipv6"><code>ipv6</code></a></p>
184+
<p>Similar to `AF_INET6` in POSIX.
185+
</li>
186+
</ul>
187+
<h4><a name="ipv4_address"><code>tuple ipv4-address</code></a></h4>
188+
<h5>Tuple Fields</h5>
189+
<ul>
190+
<li><a name="ipv4_address.0"><code>0</code></a>: <code>u8</code></li>
191+
<li><a name="ipv4_address.1"><code>1</code></a>: <code>u8</code></li>
192+
<li><a name="ipv4_address.2"><code>2</code></a>: <code>u8</code></li>
193+
<li><a name="ipv4_address.3"><code>3</code></a>: <code>u8</code></li>
194+
</ul>
195+
<h4><a name="ipv6_address"><code>tuple ipv6-address</code></a></h4>
196+
<h5>Tuple Fields</h5>
197+
<ul>
198+
<li><a name="ipv6_address.0"><code>0</code></a>: <code>u16</code></li>
199+
<li><a name="ipv6_address.1"><code>1</code></a>: <code>u16</code></li>
200+
<li><a name="ipv6_address.2"><code>2</code></a>: <code>u16</code></li>
201+
<li><a name="ipv6_address.3"><code>3</code></a>: <code>u16</code></li>
202+
<li><a name="ipv6_address.4"><code>4</code></a>: <code>u16</code></li>
203+
<li><a name="ipv6_address.5"><code>5</code></a>: <code>u16</code></li>
204+
<li><a name="ipv6_address.6"><code>6</code></a>: <code>u16</code></li>
205+
<li><a name="ipv6_address.7"><code>7</code></a>: <code>u16</code></li>
206+
</ul>
207+
<h4><a name="ip_address"><code>variant ip-address</code></a></h4>
208+
<h5>Variant Cases</h5>
209+
<ul>
210+
<li><a name="ip_address.ipv4"><code>ipv4</code></a>: <a href="#ipv4_address"><a href="#ipv4_address"><code>ipv4-address</code></a></a></li>
211+
<li><a name="ip_address.ipv6"><code>ipv6</code></a>: <a href="#ipv6_address"><a href="#ipv6_address"><code>ipv6-address</code></a></a></li>
212+
</ul>
213+
<h4><a name="ipv4_socket_address"><code>record ipv4-socket-address</code></a></h4>
214+
<h5>Record Fields</h5>
215+
<ul>
216+
<li><a name="ipv4_socket_address.port"><code>port</code></a>: <code>u16</code></li>
217+
<li><a name="ipv4_socket_address.address"><code>address</code></a>: <a href="#ipv4_address"><a href="#ipv4_address"><code>ipv4-address</code></a></a></li>
218+
</ul>
219+
<h4><a name="ipv6_socket_address"><code>record ipv6-socket-address</code></a></h4>
220+
<h5>Record Fields</h5>
221+
<ul>
222+
<li><a name="ipv6_socket_address.port"><code>port</code></a>: <code>u16</code></li>
223+
<li><a name="ipv6_socket_address.flow_info"><code>flow-info</code></a>: <code>u32</code></li>
224+
<li><a name="ipv6_socket_address.address"><code>address</code></a>: <a href="#ipv6_address"><a href="#ipv6_address"><code>ipv6-address</code></a></a></li>
225+
<li><a name="ipv6_socket_address.scope_id"><code>scope-id</code></a>: <code>u32</code></li>
226+
</ul>
227+
<h4><a name="ip_socket_address"><code>variant ip-socket-address</code></a></h4>
228+
<h5>Variant Cases</h5>
229+
<ul>
230+
<li><a name="ip_socket_address.ipv4"><code>ipv4</code></a>: <a href="#ipv4_socket_address"><a href="#ipv4_socket_address"><code>ipv4-socket-address</code></a></a></li>
231+
<li><a name="ip_socket_address.ipv6"><code>ipv6</code></a>: <a href="#ipv6_socket_address"><a href="#ipv6_socket_address"><code>ipv6-socket-address</code></a></a></li>
232+
</ul>
233233
<hr />
234234
<h3>Functions</h3>
235235
<h4><a name="drop_network"><code>drop-network: func</code></a></h4>
@@ -326,7 +326,7 @@ mean &quot;ready&quot;.</p>
326326
<h5>Record Fields</h5>
327327
<ul>
328328
<li><a name="datagram.data"><code>data</code></a>: list&lt;<code>u8</code>&gt;</li>
329-
<li><a name="datagram.remote_address"><a href="#remote_address"><code>remote-address</code></a></a>: <a href="#ip_socket_address"><a href="#ip_socket_address"><code>ip-socket-address</code></a></a></li>
329+
<li><a name="datagram.remote_address"><a href="#remote_address"><code>remote-address</code></a></a>: option&lt;<a href="#ip_socket_address"><a href="#ip_socket_address"><code>ip-socket-address</code></a></a>&gt;</li>
330330
</ul>
331331
<hr />
332332
<h3>Functions</h3>
@@ -466,14 +466,13 @@ returns how many messages were actually sent (or queued for sending).</p>
466466
sending each individual datagram until either the end of the list has been reached or the first error occurred.
467467
If at least one datagram has been sent successfully, this function never returns an error.</p>
468468
<p>If the input list is empty, the function returns <code>ok(0)</code>.</p>
469-
<p>The remote address option is required. To send a message to the &quot;connected&quot; peer,
470-
call <a href="#remote_address"><code>remote-address</code></a> to get their address.</p>
471469
<h1>Typical errors</h1>
472470
<ul>
473471
<li><code>address-family-mismatch</code>: The <a href="#remote_address"><code>remote-address</code></a> has the wrong address family. (EAFNOSUPPORT)</li>
474472
<li><code>invalid-remote-address</code>: The IP address in <a href="#remote_address"><code>remote-address</code></a> is set to INADDR_ANY (<code>0.0.0.0</code> / <code>::</code>). (EDESTADDRREQ, EADDRNOTAVAIL)</li>
475473
<li><code>invalid-remote-address</code>: The port in <a href="#remote_address"><code>remote-address</code></a> is set to 0. (EDESTADDRREQ, EADDRNOTAVAIL)</li>
476-
<li><code>already-connected</code>: The socket is in &quot;connected&quot; mode and the <code>datagram.remote-address</code> does not match the address passed to <code>connect</code>. (EISCONN)</li>
474+
<li><code>already-connected</code>: The socket is in &quot;connected&quot; mode and <a href="#remote_address"><code>remote-address</code></a> is <code>some</code> value that does not match the address passed to <code>connect</code>. (EISCONN)</li>
475+
<li><code>not-connected</code>: The socket is not &quot;connected&quot; and no value for <a href="#remote_address"><code>remote-address</code></a> was provided. (EDESTADDRREQ)</li>
477476
<li><code>not-bound</code>: The socket is not bound to any local address. Unlike POSIX, this function does not perform an implicit bind.</li>
478477
<li><code>remote-unreachable</code>: The remote address is not reachable. (ECONNREFUSED, ECONNRESET, ENETRESET on Windows, EHOSTUNREACH, EHOSTDOWN, ENETUNREACH, ENETDOWN)</li>
479478
<li><code>datagram-too-large</code>: The datagram is too large. (EMSGSIZE)</li>
@@ -731,21 +730,6 @@ when it does, they are expected to subsume this API.</p>
731730
<p>An error type returned from a stream operation. Currently this
732731
doesn't provide any additional information.</p>
733732
<h5>Record Fields</h5>
734-
<h4><a name="output_stream"><code>type output-stream</code></a></h4>
735-
<p><code>u32</code></p>
736-
<p>An output bytestream. In the future, this will be replaced by handle
737-
types.
738-
<p>This conceptually represents a <code>stream&lt;u8, _&gt;</code>. It's temporary
739-
scaffolding until component-model's async features are ready.</p>
740-
<p><a href="#output_stream"><code>output-stream</code></a>s are <em>non-blocking</em> to the extent practical on
741-
underlying platforms. Except where specified otherwise, I/O operations also
742-
always return promptly, after the number of bytes that can be written
743-
promptly, which could even be zero. To wait for the stream to be ready to
744-
accept data, the <a href="#subscribe_to_output_stream"><code>subscribe-to-output-stream</code></a> function to obtain a
745-
<a href="#pollable"><code>pollable</code></a> which can be polled for using <code>wasi_poll</code>.</p>
746-
<p>And at present, it is a <code>u32</code> instead of being an actual handle, until
747-
the wit-bindgen implementation of handles and resources is ready.</p>
748-
<p>This <a href="https://github.com/WebAssembly/WASI/blob/main/docs/WitInWasi.md#Resources">represents a resource</a>.</p>
749733
<h4><a name="input_stream"><code>type input-stream</code></a></h4>
750734
<p><code>u32</code></p>
751735
<p>An input bytestream. In the future, this will be replaced by handle
@@ -761,6 +745,21 @@ can be polled for using <code>wasi_poll</code>.</p>
761745
<p>And at present, it is a <code>u32</code> instead of being an actual handle, until
762746
the wit-bindgen implementation of handles and resources is ready.</p>
763747
<p>This <a href="https://github.com/WebAssembly/WASI/blob/main/docs/WitInWasi.md#Resources">represents a resource</a>.</p>
748+
<h4><a name="output_stream"><code>type output-stream</code></a></h4>
749+
<p><code>u32</code></p>
750+
<p>An output bytestream. In the future, this will be replaced by handle
751+
types.
752+
<p>This conceptually represents a <code>stream&lt;u8, _&gt;</code>. It's temporary
753+
scaffolding until component-model's async features are ready.</p>
754+
<p><a href="#output_stream"><code>output-stream</code></a>s are <em>non-blocking</em> to the extent practical on
755+
underlying platforms. Except where specified otherwise, I/O operations also
756+
always return promptly, after the number of bytes that can be written
757+
promptly, which could even be zero. To wait for the stream to be ready to
758+
accept data, the <a href="#subscribe_to_output_stream"><code>subscribe-to-output-stream</code></a> function to obtain a
759+
<a href="#pollable"><code>pollable</code></a> which can be polled for using <code>wasi_poll</code>.</p>
760+
<p>And at present, it is a <code>u32</code> instead of being an actual handle, until
761+
the wit-bindgen implementation of handles and resources is ready.</p>
762+
<p>This <a href="https://github.com/WebAssembly/WASI/blob/main/docs/WitInWasi.md#Resources">represents a resource</a>.</p>
764763
<hr />
765764
<h3>Functions</h3>
766765
<h4><a name="read"><code>read: func</code></a></h4>

0 commit comments

Comments
 (0)