amber/stdin

Values

pub fn close() -> Nil

Closes stdin, freeing the resource.

Examples

stdin.close()
pub fn is_terminal() -> Bool

Checks if stdin is a TTY (terminal).

Examples

// This example is system and context specific
stdin.is_terminal() // True
pub fn read(
  p: uint8_array.Uint8Array,
) -> promise.Promise(Result(option.Option(Int), error.Error))

Read the incoming data from stdin into an array buffer (p).

Resolves to either the number of bytes read during the operation or EOF (None) if there was nothing more to read.

It is possible for a read to successfully return with 0 bytes. This does not indicate EOF.

It is not guaranteed that the full buffer will be read in a single call.

Examples

// If the text "hello world" is piped into the script:
let buf = uint8_array.from_length(100)
use bytes_read <- promise.then(stdin.read(buf))
// bytes_read == Some(11)
let text = text_decoder.decode(uint8_array.buffer(buf))
// text == "hello world"
pub fn read_sync(p: uint8_array.Uint8Array) -> option.Option(Int)

Synchronously read from the incoming data from stdin into an array buffer (p).

Returns either the number of bytes read during the operation or EOF (None) if there was nothing more to read.

It is possible for a read to successfully return with 0 bytes. This does not indicate EOF.

It is not guaranteed that the full buffer will be read in a single call.

Examples

// If the text "hello world" is piped into the script:
let buf = uint8_array.from_length(100)
let bytes_read = stdin.read_sync(buf)
// bytes_read == Some(11)
let text = text_decoder.decode(uint8_array.buffer(buf))
// text == "hello world"
pub fn readable() -> readable_stream.ReadableStream(
  uint8_array.Uint8Array,
)

A readable stream interface to stdin.

pub fn set_raw(mode: Bool) -> Nil

Set TTY to be under raw mode or not. In raw mode, characters are read and returned as is, without being processed. All special processing of characters by the terminal is disabled, including echoing input characters. Reading from a TTY device in raw mode is faster than reading from a TTY device in canonical mode.

Examples

stdin.set_raw(True)
pub fn set_raw_with(
  mode mode: Bool,
  with options: List(set_raw.SetRawOption),
) -> Nil

Set TTY to be under raw mode or not with options.

Examples

stdin.set_raw_with(True, [set_raw.Cbreak(True)])
Search Document