Class: Ibex::Runtime::SyntaxSessionDiagnostic

Inherits:
Object
  • Object
show all
Defined in:
lib/ibex/runtime/syntax_session.rb,
sig/ibex/runtime/syntax_session.rbs

Overview

Immutable, data-only copy of one parser diagnostic. Application-owned values and locations are sanitized rather than retained by identity.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind:, data:) ⇒ SyntaxSessionDiagnostic

Returns a new instance of SyntaxSessionDiagnostic.

RBS:

  • (kind: Symbol, data: Hash[Object?, Object?]) -> void

Parameters:

  • kind: (Symbol)
  • data: (Hash[Object?, Object?])


149
150
151
152
153
154
155
156
# File 'lib/ibex/runtime/syntax_session.rb', line 149

def initialize(kind:, data:)
  raise ArgumentError, "diagnostic kind must be a Symbol" unless kind.is_a?(Symbol)
  raise ArgumentError, "diagnostic data must be a Hash" unless data.is_a?(Hash)

  @kind = kind
  @data = EventSanitizer.data(data)
  freeze
end

Instance Attribute Details

#dataHash[String, EventSanitizer::json_value] (readonly)

Signature:

  • Hash[String, EventSanitizer::json_value]

Returns:

  • (Hash[String, EventSanitizer::json_value])


146
147
148
# File 'lib/ibex/runtime/syntax_session.rb', line 146

def data
  @data
end

#kindSymbol (readonly)

Signature:

  • Symbol

Returns:

  • (Symbol)


145
146
147
# File 'lib/ibex/runtime/syntax_session.rb', line 145

def kind
  @kind
end

Instance Method Details

#to_hHash[String, EventSanitizer::json_value]

RBS:

  • () -> Hash[String, EventSanitizer::json_value]

Returns:

  • (Hash[String, EventSanitizer::json_value])


159
160
161
# File 'lib/ibex/runtime/syntax_session.rb', line 159

def to_h
  @data
end