Raxol.Terminal.ANSI.DeviceStatus (Raxol Terminal v2.6.0)

Copy Markdown View Source

Handles terminal state queries and device status reports. This includes cursor position reports, device status reports, and terminal identification queries.

Summary

Functions

Generates a cursor position report.

Generates a device status report.

Generates a fourth device attributes report.

Creates a new device status map with default values.

Generates a primary device attributes report.

Generates a secondary device attributes report.

Generates a tertiary device attributes report.

Updates the cursor position in the device status.

Types

device_status()

@type device_status() :: %{
  cursor_position: {integer(), integer()},
  device_type: String.t(),
  version: String.t(),
  terminal_id: String.t(),
  features: MapSet.t()
}

Functions

cursor_position_report(map)

@spec cursor_position_report(device_status()) :: String.t()

Generates a cursor position report.

device_status_report(status, report_type)

@spec device_status_report(device_status(), :ok | :malfunction) :: String.t()

Generates a device status report.

fourth_device_attributes(map)

@spec fourth_device_attributes(device_status()) :: String.t()

Generates a fourth device attributes report.

new()

@spec new() :: device_status()

Creates a new device status map with default values.

primary_device_attributes(map)

@spec primary_device_attributes(device_status()) :: String.t()

Generates a primary device attributes report.

secondary_device_attributes(map)

@spec secondary_device_attributes(device_status()) :: String.t()

Generates a secondary device attributes report.

tertiary_device_attributes(map)

@spec tertiary_device_attributes(device_status()) :: String.t()

Generates a tertiary device attributes report.

update_cursor_position(status, arg)

@spec update_cursor_position(
  device_status(),
  {integer(), integer()}
) :: device_status()

Updates the cursor position in the device status.