Skip to content

Latest commit

 

History

History
215 lines (215 loc) · 10.5 KB

imports.md

File metadata and controls

215 lines (215 loc) · 10.5 KB

Import interface wasi:io/[email protected]

A poll API intended to let users wait for I/O events on multiple handles at once.


Types

resource pollable

pollable represents a single I/O event which may be ready, or not.

Functions

[method]pollable.ready: func

Return the readiness of a pollable. This function never blocks.

Returns true when the pollable is ready, and false otherwise.

Params
Return values
  • bool

[method]pollable.block: func

block returns immediately if the pollable is ready, and otherwise blocks until ready.

This function is equivalent to calling poll.poll on a list containing only this pollable.

Params

poll: func

Poll for completion on a set of pollables.

This function takes a list of pollables, which identify I/O sources of interest, and waits until one or more of the events is ready for I/O.

The result list<u32> contains one or more indices of handles in the argument list that is ready for I/O.

If the list contains more elements than can be indexed with a u32 value, this function traps.

A timeout can be implemented by adding a pollable from the wasi-clocks API to the list.

This function does not return a result; polling in itself does not do any I/O so it doesn't fail. If any of the I/O sources identified by the pollables has an error, it is indicated by marking the source as being reaedy for I/O.

Params
Return values
  • list<u32>

Import interface wasi:clocks/[email protected]

WASI单调时钟(Monotonic Clock)是旨在让用户测量运行时间的时钟API。

该API旨在至少在Unix系列平台和Windows之间具有可移植性。

单调时钟是具有未指定初始值的时钟,并且连续读取该时钟将产生非递减值(non-decreasing values)。


Types

type pollable

pollable

#### `type instant` `u64`

时间中的时点(instant),以纳秒(nanoseconds)为单位。 instant与一个未指定的初始值有关, 且仅能与其他相同单调时钟的instant进行比较。

type duration

u64

时间中的时长(duration),以纳秒(nanoseconds)为单位。


Functions

now: func

读取时钟当前值。

时钟是单调的,因此重复调用此函数将产生一系列非递减值。

Return values

resolution: func

查询时钟的resolution。 返回与时钟周期(clock tick)对应的时间时长(duration)。

Return values

subscribe-instant: func

创建一个到达指定时刻(instant)被解析的pollable

Params
Return values

subscribe-duration: func

创建一个在调用此函数经过指定时长(duration)后被解析的pollable

Params
Return values

Import interface wasi:clocks/[email protected]

WASI挂钟(Wall Clock)是旨在让用户查询当前时间的时钟API。 名称“wall”可类比于“clock on the wall(墙上的时钟)”, 它不一定是单调的,因为可能会被重置。

该API旨在至少在Unix系列平台和Windows之间具有可移植性。

挂钟(wall clock)是根据某个外部参考来测量日期和时间的时钟。

外部参考可能会重置,所以此时钟不一定是单调的,因此不适合测量运行时间(elapsed time)。

它旨在向人类报告当前的日期和时间。


Types

record datetime

时间和日期,以秒(seconds)及纳秒(nanoseconds)为单位。

Record Fields
  • seconds: u64
  • nanoseconds: u32

Functions

now: func

读取时钟的当前值。

此时钟不是单调的,因此重复调用不一定会产生一系列非递减值。

返回的时间戳(timestamp)表示自1970-01-01T00:00:00Z以来的秒数, 也称为POSIX's Seconds Since the Epoch,或称Unix Time

输出的nanoseconds字段总是小于1000000000。

Return values

resolution: func

查询时钟的resolution。

输出的nanoseconds字段总是小于1000000000。

Return values

Import interface wasi:clocks/[email protected]


Types

type datetime

datetime

#### `record timezone-display`

Information useful for displaying the timezone of a specific datetime.

This information may vary within a single timezone to reflect daylight saving time adjustments.

Record Fields
  • utc-offset: s32

    The number of seconds difference between UTC time and the local time of the timezone.

    The returned value will always be less than 86400 which is the number of seconds in a day (246060).

    In implementations that do not expose an actual time zone, this should return 0.

  • name: string

    The abbreviated name of the timezone to display to a user. The name `UTC` indicates Coordinated Universal Time. Otherwise, this should reference local standards for the name of the time zone.

    In implementations that do not expose an actual time zone, this should be the string UTC.

    In time zones that do not have an applicable name, a formatted representation of the UTC offset may be returned, such as -04:00.

  • in-daylight-saving-time: bool

    Whether daylight saving time is active.

    In implementations that do not expose an actual time zone, this should return false.


Functions

display: func

Return information needed to display the given datetime. This includes the UTC offset, the time zone name, and a flag indicating whether daylight saving time is active.

If the timezone cannot be determined for the given datetime, return a timezone-display for UTC with a utc-offset of 0 and no daylight saving time.

Params
Return values

utc-offset: func

The same as display, but only return the UTC offset.

Params
Return values
  • s32