Raxol.Terminal.EventProcessor (Raxol v2.0.1)

View Source

Optimized event processing pipeline for terminal events.

This module provides high-performance event processing with:

  • Batch event processing for improved throughput
  • Event priority handling
  • Optimized memory usage with pre-compiled handlers
  • Event filtering and debouncing
  • Performance monitoring integration

Summary

Functions

Optimized event filtering to reduce processing overhead.

Processes a single terminal event with optimized performance.

Processes high-priority events immediately, queues others.

Processes multiple events in batch for improved performance.

Functions

filter_redundant_events(events)

@spec filter_redundant_events([Raxol.Core.Events.Event.t()]) :: [
  Raxol.Core.Events.Event.t()
]

Optimized event filtering to reduce processing overhead.

process_event(event, emulator)

Processes a single terminal event with optimized performance.

Parameters

  • event - The event to process
  • emulator - The current terminal emulator state

Returns

  • {updated_emulator, output} - The updated emulator state and any output

process_event_with_priority(event, emulator, options \\ [])

@spec process_event_with_priority(
  Raxol.Core.Events.Event.t(),
  Raxol.Terminal.Emulator.t(),
  keyword()
) ::
  {:immediate, Raxol.Terminal.Emulator.t(), any()}
  | {:queued, Raxol.Terminal.Emulator.t()}

Processes high-priority events immediately, queues others.

Parameters

  • event - The event to process
  • emulator - The current terminal emulator state
  • options - Processing options

Returns

  • {:immediate, updated_emulator, output} - Processed immediately
  • {:queued, emulator} - Queued for later processing

process_events_batch(events, emulator)

@spec process_events_batch([Raxol.Core.Events.Event.t()], Raxol.Terminal.Emulator.t()) ::
  {Raxol.Terminal.Emulator.t(), [any()]}

Processes multiple events in batch for improved performance.

Parameters

  • events - List of events to process
  • emulator - The current terminal emulator state

Returns

  • {updated_emulator, outputs} - The updated emulator state and list of outputs