Skip to content

Stdin

[Source]

Asynchronous access to stdin. The constructor is private to ensure that access is provided only via an environment.

Reading from stdin is done by registering an InputNotify:

actor Main
  new create(env: Env) =>
    // do not forget to call `env.input.dispose` at some point
    env.input(
      object iso is InputNotify
        fun ref apply(data: Array[U8] iso) =>
          env.out.write(String.from_iso_array(consume data))

        fun ref dispose() =>
          env.out.print("Done.")
      end,
      512)

Note: For reading user input from a terminal, use the term package.

actor tag Stdin is
  AsioEventNotify tag

Implements


Public Behaviours

apply

[Source]

Set the notifier. Optionally, also sets the chunk size, dictating the maximum number of bytes of each chunk that will be passed to the notifier.

be apply(
  notify: (InputNotify iso | None val),
  chunk_size: USize val = 32)

Parameters


dispose

[Source]

Clear the notifier in order to shut down input.

be dispose()