2323/// [WASI filesystem path resolution].
2424///
2525/// [WASI filesystem path resolution]: https://github.com/WebAssembly/wasi-filesystem/blob/main/path-resolution.md
26- @since (version = 0.2.0 )
26+ @since (version = 0.3.0
2727interface types {
28- @since (version = 0.2.0 )
28+ @since(version = 0.3.0
2929 use wasi:clocks/
[email protected] .{datetime};
3030
3131 /// File size or length of a region within a file.
32- @since (version = 0.2.0 )
32+ @since(version = 0.3.0
3333 type filesize = u64;
3434
3535 /// The type of a filesystem object referenced by a descriptor.
3636 ///
3737 /// Note: This was called `filetype` in earlier versions of WASI.
38- @since (version = 0.2.0 )
38+ @since(version = 0.3.0
3939 enum descriptor-type {
4040 /// The type of the descriptor or file is unknown or is different from
4141 /// any of the other types specified.
@@ -59,7 +59,7 @@ interface types {
5959 /// Descriptor flags.
6060 ///
6161 /// Note: This was called `fdflags` in earlier versions of WASI.
62- @since (version = 0.2.0 )
62+ @since(version = 0.3.0
6363 flags descriptor-flags {
6464 /// Read mode: Data can be read.
6565 read,
@@ -103,7 +103,7 @@ interface types {
103103 /// File attributes.
104104 ///
105105 /// Note: This was called `filestat` in earlier versions of WASI.
106- @since (version = 0.2.0 )
106+ @since(version = 0.3.0
107107 record descriptor-stat {
108108 /// File type.
109109 %type: descriptor-type,
@@ -130,15 +130,15 @@ interface types {
130130 }
131131
132132 /// Flags determining the method of how paths are resolved.
133- @since (version = 0.2.0 )
133+ @since(version = 0.3.0
134134 flags path-flags {
135135 /// As long as the resolved path corresponds to a symbolic link, it is
136136 /// expanded.
137137 symlink-follow,
138138 }
139139
140140 /// Open flags used by `open-at` .
141- @since (version = 0.2.0 )
141+ @since(version = 0.3.0
142142 flags open-flags {
143143 /// Create file if it does not exist, similar to `O_CREAT` in POSIX.
144144 create,
@@ -151,11 +151,11 @@ interface types {
151151 }
152152
153153 /// Number of hard links to an inode.
154- @since (version = 0.2.0 )
154+ @since(version = 0.3.0
155155 type link-count = u64;
156156
157157 /// When setting a timestamp, this gives the value to set it to.
158- @since (version = 0.2.0 )
158+ @since(version = 0.3.0
159159 variant new-timestamp {
160160 /// Leave the timestamp set to its previous value.
161161 no-change,
@@ -255,7 +255,7 @@ interface types {
255255 }
256256
257257 /// File or memory access pattern advisory information.
258- @since (version = 0.2.0 )
258+ @since (version = 0.3.0
259259 enum advice {
260260 /// The application has no advice to give on its behavior with respect
261261 /// to the specified data.
@@ -279,7 +279,7 @@ interface types {
279279
280280 /// A 128-bit hash value, split into parts because wasm doesn't have a
281281 /// 128-bit integer type.
282- @since (version = 0.2.0 )
282+ @since(version = 0.3.0
283283 record metadata-hash-value {
284284 /// 64 bits of a 128-bit hash value.
285285 lower: u64,
@@ -290,7 +290,7 @@ interface types {
290290 /// A descriptor is a reference to a filesystem object, which may be a file,
291291 /// directory, named pipe, special file, or other object on which filesystem
292292 /// calls may be made.
293- @since (version = 0.2.0 )
293+ @since(version = 0.3.0
294294 resource descriptor {
295295 /// Return a stream for reading from a file, if available.
296296 ///
@@ -346,7 +346,7 @@ interface types {
346346 /// Provide file advisory information on a descriptor.
347347 ///
348348 /// This is similar to `posix_fadvise` in POSIX.
349- @since (version = 0.2.0 )
349+ @since (version = 0.3.0
350350 advise: func(
351351 /// The offset within the file to which the advisory applies.
352352 offset: filesize,
@@ -362,7 +362,7 @@ interface types {
362362 /// opened for writing.
363363 ///
364364 /// Note: This is similar to `fdatasync` in POSIX.
365- @since (version = 0.2.0 )
365+ @since (version = 0.3.0
366366 sync-data: func() -> result<_, error-code>;
367367
368368 /// Get flags associated with a descriptor.
@@ -371,7 +371,7 @@ interface types {
371371 ///
372372 /// Note: This returns the value that was the `fs_flags` value returned
373373 /// from `fdstat_get` in earlier versions of WASI.
374- @since (version = 0.2.0 )
374+ @since (version = 0.3.0
375375 get-flags: func() -> result<descriptor-flags, error-code>;
376376
377377 /// Get the dynamic type of a descriptor.
@@ -384,22 +384,22 @@ interface types {
384384 ///
385385 /// Note: This returns the value that was the `fs_filetype` value returned
386386 /// from `fdstat_get` in earlier versions of WASI.
387- @since (version = 0.2.0 )
387+ @since (version = 0.3.0
388388 get-type: func() -> result<descriptor-type, error-code>;
389389
390390 /// Adjust the size of an open file. If this increases the file's size, the
391391 /// extra bytes are filled with zeros.
392392 ///
393393 /// Note: This was called `fd_filestat_set_size` in earlier versions of WASI.
394- @since (version = 0.2.0 )
394+ @since (version = 0.3.0
395395 set-size: func(size: filesize) -> result<_, error-code>;
396396
397397 /// Adjust the timestamps of an open file or directory.
398398 ///
399399 /// Note: This is similar to `futimens` in POSIX.
400400 ///
401401 /// Note: This was called `fd_filestat_set_times` in earlier versions of WASI.
402- @since (version = 0.2.0 )
402+ @since (version = 0.3.0
403403 set-times: func(
404404 /// The desired values of the data access timestamp.
405405 data-access-timestamp: new-timestamp,
@@ -416,7 +416,7 @@ interface types {
416416 /// This always returns a new stream which starts at the beginning of the
417417 /// directory. Multiple streams may be active on the same directory, and they
418418 /// do not interfere with each other.
419- @since (version = 0.2.0 )
419+ @since (version = 0.3.0
420420 read-directory: func() -> result<directory-entry-stream, error-code>;
421421
422422 /// Synchronize the data and metadata of a file to disk.
@@ -425,13 +425,13 @@ interface types {
425425 /// opened for writing.
426426 ///
427427 /// Note: This is similar to `fsync` in POSIX.
428- @since (version = 0.2.0 )
428+ @since (version = 0.3.0
429429 sync: func() -> result<_, error-code>;
430430
431431 /// Create a directory.
432432 ///
433433 /// Note: This is similar to `mkdirat` in POSIX.
434- @since (version = 0.2.0 )
434+ @since (version = 0.3.0
435435 create-directory-at: func(
436436 /// The relative path at which to create the directory.
437437 path: string,
@@ -446,7 +446,7 @@ interface types {
446446 /// modified, use `metadata-hash` .
447447 ///
448448 /// Note: This was called `fd_filestat_get` in earlier versions of WASI.
449- @since (version = 0.2.0 )
449+ @since (version = 0.3.0
450450 stat: func() -> result<descriptor-stat, error-code>;
451451
452452 /// Return the attributes of a file or directory.
@@ -456,7 +456,7 @@ interface types {
456456 /// discussion of alternatives.
457457 ///
458458 /// Note: This was called `path_filestat_get` in earlier versions of WASI.
459- @since (version = 0.2.0 )
459+ @since (version = 0.3.0
460460 stat-at: func(
461461 /// Flags determining the method of how the path is resolved.
462462 path-flags: path-flags,
@@ -470,7 +470,7 @@ interface types {
470470 ///
471471 /// Note: This was called `path_filestat_set_times` in earlier versions of
472472 /// WASI.
473- @since (version = 0.2.0 )
473+ @since (version = 0.3.0
474474 set-times-at: func(
475475 /// Flags determining the method of how the path is resolved.
476476 path-flags: path-flags,
@@ -485,7 +485,7 @@ interface types {
485485 /// Create a hard link.
486486 ///
487487 /// Note: This is similar to `linkat` in POSIX.
488- @since (version = 0.2.0 )
488+ @since (version = 0.3.0
489489 link-at: func(
490490 /// Flags determining the method of how the path is resolved.
491491 old-path-flags: path-flags,
@@ -509,7 +509,7 @@ interface types {
509509 /// `error-code::read-only` .
510510 ///
511511 /// Note: This is similar to `openat` in POSIX.
512- @since (version = 0.2.0 )
512+ @since (version = 0.3.0
513513 open-at: func(
514514 /// Flags determining the method of how the path is resolved.
515515 path-flags: path-flags,
@@ -527,7 +527,7 @@ interface types {
527527 /// filesystem, this function fails with `error-code::not-permitted` .
528528 ///
529529 /// Note: This is similar to `readlinkat` in POSIX.
530- @since (version = 0.2.0 )
530+ @since (version = 0.3.0
531531 readlink-at: func(
532532 /// The relative path of the symbolic link from which to read.
533533 path: string,
@@ -538,7 +538,7 @@ interface types {
538538 /// Return `error-code::not-empty` if the directory is not empty.
539539 ///
540540 /// Note: This is similar to `unlinkat(fd, path, AT_REMOVEDIR)` in POSIX.
541- @since (version = 0.2.0 )
541+ @since (version = 0.3.0
542542 remove-directory-at: func(
543543 /// The relative path to a directory to remove.
544544 path: string,
@@ -547,7 +547,7 @@ interface types {
547547 /// Rename a filesystem object.
548548 ///
549549 /// Note: This is similar to `renameat` in POSIX.
550- @since (version = 0.2.0 )
550+ @since (version = 0.3.0
551551 rename-at: func(
552552 /// The relative source path of the file or directory to rename.
553553 old-path: string,
@@ -563,7 +563,7 @@ interface types {
563563 /// `error-code::not-permitted` .
564564 ///
565565 /// Note: This is similar to `symlinkat` in POSIX.
566- @since (version = 0.2.0 )
566+ @since (version = 0.3.0
567567 symlink-at: func(
568568 /// The contents of the symbolic link.
569569 old-path: string,
@@ -575,7 +575,7 @@ interface types {
575575 ///
576576 /// Return `error-code::is-directory` if the path refers to a directory.
577577 /// Note: This is similar to `unlinkat(fd, path, 0)` in POSIX.
578- @since (version = 0.2.0 )
578+ @since (version = 0.3.0
579579 unlink-file-at: func(
580580 /// The relative path to a file to unlink.
581581 path: string,
@@ -587,7 +587,7 @@ interface types {
587587 /// same device (`st_dev` ) and inode (`st_ino` or `d_ino` ) numbers.
588588 /// wasi-filesystem does not expose device and inode numbers, so this function
589589 /// may be used instead.
590- @since (version = 0.2.0 )
590+ @since (version = 0.3.0
591591 is-same-object: func(other: borrow<descriptor>) -> bool;
592592
593593 /// Return a hash of the metadata associated with a filesystem object referred
@@ -609,14 +609,14 @@ interface types {
609609 /// computed hash.
610610 ///
611611 /// However, none of these is required.
612- @since (version = 0.2.0 )
612+ @since (version = 0.3.0
613613 metadata-hash: func() -> result<metadata-hash-value, error-code>;
614614
615615 /// Return a hash of the metadata associated with a filesystem object referred
616616 /// to by a directory descriptor and a relative path.
617617 ///
618618 /// This performs the same hash computation as `metadata-hash` .
619- @since (version = 0.2.0 )
619+ @since (version = 0.3.0
620620 metadata-hash-at: func(
621621 /// Flags determining the method of how the path is resolved.
622622 path-flags: path-flags,
@@ -626,10 +626,10 @@ interface types {
626626 }
627627
628628 /// A stream of directory entries.
629- @since (version = 0.2.0 )
629+ @since (version = 0.3.0
630630 resource directory-entry-stream {
631631 /// Read a single directory entry from a `directory-entry-stream` .
632- @since (version = 0.2.0 )
632+ @since(version = 0.3.0
633633 read-directory-entry: func() -> result<option<directory-entry>, error-code>;
634634 }
635635}
0 commit comments