plushie/renderer_port

Erlang Port operations for the renderer subprocess.

Manages the low-level Erlang Port that communicates with the plushie-renderer binary over stdin/stdout. Used by bridge.gleam and testing infrastructure.

All functions are @target(erlang). Cross-target utilities (logging, env, hashing, time) live in plushie/platform.gleam.

Types

Line data from {line, N} port mode: complete line or partial chunk.

pub type LineData {
  Eol(data: BitArray)
  Noeol(data: BitArray)
}

Constructors

  • Eol(data: BitArray)
  • Noeol(data: BitArray)

Values

pub fn extract_eof(
  msg: dynamic.Dynamic,
) -> Result(Nil, dynamic.Dynamic)

Extract eof signal from a port message.

pub fn extract_exit_status(
  msg: dynamic.Dynamic,
) -> Result(dynamic.Dynamic, dynamic.Dynamic)

Extract exit status from an Erlang port message tuple.

pub fn extract_line_data(
  msg: dynamic.Dynamic,
) -> Result(LineData, dynamic.Dynamic)

Extract line data from a port message in {line, N} mode.

pub fn extract_port_data(
  msg: dynamic.Dynamic,
) -> Result(dynamic.Dynamic, dynamic.Dynamic)

Extract data payload from an Erlang port message tuple.

pub fn json_port_options() -> dynamic.Dynamic

Port options for JSONL wire format (newline-delimited).

pub fn msgpack_port_options() -> dynamic.Dynamic

Port options for MessagePack wire format (4-byte length prefix).

pub fn null_port() -> port.Port

Return a null port value for iostream transport.

pub fn open_fd_port(
  input_fd: Int,
  output_fd: Int,
  options: dynamic.Dynamic,
) -> port.Port

Open an fd port (for stdin/stdout stdio transport).

pub fn open_port_spawn(
  path: String,
  args: List(String),
  env: dynamic.Dynamic,
  options: dynamic.Dynamic,
) -> port.Port

Open a port to spawn an external process.

pub fn port_close(port: port.Port) -> Bool

Close a port.

pub fn port_command(port: port.Port, data: BitArray) -> Bool

Send data to a port.

pub fn stdio_port_options_json() -> dynamic.Dynamic

Port options for stdio transport with JSON.

pub fn stdio_port_options_msgpack() -> dynamic.Dynamic

Port options for stdio transport with MessagePack.

Search Document