@@ -1124,12 +1124,13 @@ would correspond to:
1124
1124
(component
1125
1125
(type (export "host") (component
1126
1126
(type $types (instance
1127
- (export "level" (type (enum "info" "debug")))
1127
+ (type $level (enum "info" "debug"))
1128
+ (export "level" (type (eq $level)))
1128
1129
))
1129
1130
(export $types "types" (instance (type $types)))
1130
1131
(alias export $types "level" (type $level))
1131
1132
(type $console (instance
1132
- (alias outer 1 $level (type $level' ))
1133
+ (export $level' "level" (type (eq $level) ))
1133
1134
(export "log" (func (param "level" $level') (param "msg" string)))
1134
1135
))
1135
1136
(export "console" (instance (type $console)))
@@ -1155,11 +1156,10 @@ would correspond to:
1155
1156
``` wasm
1156
1157
(component
1157
1158
(type (export "host") (component
1158
- (type $ the-world (component
1159
- (import "test" (func))
1159
+ (export " the-world" (component
1160
+ (export "test" (func))
1160
1161
(export "run" (func))
1161
1162
))
1162
- (export "the-world" (type $the-world))
1163
1163
))
1164
1164
)
1165
1165
```
@@ -1189,12 +1189,11 @@ would correspond to:
1189
1189
(export "log" (func (param "arg" string)))
1190
1190
))
1191
1191
(export "console" (instance (type $console)))
1192
- (type $ the-world (component
1192
+ (export " the-world" (component
1193
1193
(import "console" (instance
1194
1194
(export "log" (func (param "arg" string)))
1195
1195
))
1196
1196
))
1197
- (export "the-world" (type $the-world))
1198
1197
))
1199
1198
)
1200
1199
```
@@ -1243,12 +1242,11 @@ would correspond to:
1243
1242
(type (export "foo") (component
1244
1243
(import "types" "URL" (instance $types
1245
1244
(type $some-type ...)
1246
- (export "some-type" (type $some-type))
1245
+ (export "some-type" (type (eq $some-type) ))
1247
1246
))
1248
1247
(alias export $types "some-type" (type $some-type))
1249
1248
(type $foo (instance
1250
- (alias outer 1 $some-type (type $some-type'))
1251
- (export "some-type" (type $some-type'))
1249
+ (export "some-type" (type (eq $some-type)))
1252
1250
))
1253
1251
(export "foo" (instance (type $foo)))
1254
1252
))
@@ -1291,54 +1289,60 @@ and its corresponding binary encoding would be:
1291
1289
;; corresponds to `wit/types.wit`
1292
1290
(type (export "types") (component
1293
1291
(export "types" (instance
1294
- (export "request" (type (sub resource)))
1295
- (export "response" (type (sub resource)))
1292
+ (type $request (record))
1293
+ (type $response (record))
1294
+ (export "request" (type (eq $request)))
1295
+ (export "response" (type (eq $response)))
1296
1296
))
1297
1297
))
1298
1298
;; corresponds to `wit/handler.wit`
1299
1299
(type (export "handler") (component
1300
1300
;; interfaces not required in a document are imported here. The name "types"
1301
1301
;; with no URL refers to the `types` document in this package.
1302
- (import "types" (instance $types
1303
- (export "request" (type (sub resource)))
1304
- (export "response" (type (sub resource)))
1302
+ (import "types" "pkg:/types/types" (instance $types
1303
+ (type $request (record))
1304
+ (type $response (record))
1305
+ (export "request" (type (eq $request)))
1306
+ (export "response" (type (eq $response)))
1305
1307
))
1306
1308
1307
1309
;; aliases represent `use` from the imported document
1308
1310
(alias export $types "request" (type $request))
1309
1311
(alias export $types "response" (type $response))
1310
1312
(export "handler" (instance
1311
- (export $request' "request" (type $request))
1312
- (export $response' "response" (type $response))
1313
- (export "handle" (func (param (own $request')) (result (own $response') )))
1313
+ (export $request' "request" (type (eq $request) ))
1314
+ (export $response' "response" (type (eq $response) ))
1315
+ (export "handle" (func (param "request" $request') (result $response')))
1314
1316
))
1315
1317
))
1316
1318
;; corresponds to `wit/proxy.wit`
1317
1319
(type (export "proxy") (component
1318
1320
(export "proxy" (component
1319
1321
;; This world transitively depends on "types" so it's listed as an
1320
1322
;; import.
1321
- (import "types" (instance $types
1322
- (export "request" (type (sub resource)))
1323
- (export "response" (type (sub resource)))
1323
+ (import "types" "pkg:/types/types" (instance $types
1324
+ (type $request (record))
1325
+ (type $response (record))
1326
+ (export "request" (type (eq $request)))
1327
+ (export "response" (type (eq $response)))
1324
1328
))
1325
1329
(alias export $types "request" (type $request))
1326
1330
(alias export $types "response" (type $response))
1327
1331
1328
1332
;; This is filled in with the contents of what `wasi-logging.backend`
1329
1333
;; resolved to
1330
- (import "console" "URL-for-wasi-logging.backend " (instance
1331
- ...
1334
+ (import "console" "dep:/foo/bar/baz " (instance
1335
+ ;; ...
1332
1336
))
1333
- (import "origin" (instance
1337
+ (import "origin" "pkg:/handler/handler" (instance
1334
1338
(export $request' "request" (type (eq $request)))
1335
1339
(export $response' "response" (type (eq $response)))
1336
- (export "handle" (func (param (own $request)) (result (own $response) )))
1340
+ (export "handle" (func (param "request" $request') (result $response' )))
1337
1341
))
1338
- (export "handler" (instance $handler
1342
+ (export "handler" "pkg:/handler/handler" (instance
1339
1343
(export $request' "request" (type (eq $request)))
1340
1344
(export $response' "response" (type (eq $response)))
1341
- (export "handle" (func (param (own $request')) (result (own $response') )))
1345
+ (export "handle" (func (param "request" $request') (result $response')))
1342
1346
))
1343
1347
))
1344
1348
))
0 commit comments