Class: Ibex::Runtime::SyntaxSessionMetrics

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

Overview

Immutable evidence from one completed syntax-session operation.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:) ⇒ SyntaxSessionMetrics

Returns a new instance of SyntaxSessionMetrics.

RBS:

  • (reused_ratio: Float, reused_tokens: Integer, token_count: Integer, fallback_reasons: Array[Symbol]) -> void

Parameters:

  • reused_ratio: (Float)
  • reused_tokens: (Integer)
  • token_count: (Integer)
  • fallback_reasons: (Array[Symbol])


115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/ibex/runtime/syntax_session.rb', line 115

def initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:)
  unless reused_ratio.is_a?(Float) && reused_ratio.finite? && reused_ratio.between?(0.0, 1.0)
    raise ArgumentError, "reused_ratio must be a finite Float in 0.0..1.0"
  end
  unless reused_tokens.is_a?(Integer) && reused_tokens >= 0
    raise ArgumentError, "reused_tokens must be a nonnegative Integer"
  end
  unless token_count.is_a?(Integer) && token_count >= 0
    raise ArgumentError, "token_count must be a nonnegative Integer"
  end
  unless fallback_reasons.is_a?(Array) && fallback_reasons.all?(Symbol)
    raise ArgumentError, "fallback_reasons must contain only Symbols"
  end

  @reused_ratio = reused_ratio
  @reused_tokens = reused_tokens
  @token_count = token_count
  @fallback_reasons = fallback_reasons.dup.freeze
  freeze
end

Instance Attribute Details

#fallback_reasonsArray[Symbol] (readonly)

Signature:

  • Array[Symbol]

Returns:

  • (Array[Symbol])


111
112
113
# File 'lib/ibex/runtime/syntax_session.rb', line 111

def fallback_reasons
  @fallback_reasons
end

#reused_ratioFloat (readonly)

Signature:

  • Float

Returns:

  • (Float)


108
109
110
# File 'lib/ibex/runtime/syntax_session.rb', line 108

def reused_ratio
  @reused_ratio
end

#reused_tokensInteger (readonly)

Signature:

  • Integer

Returns:

  • (Integer)


109
110
111
# File 'lib/ibex/runtime/syntax_session.rb', line 109

def reused_tokens
  @reused_tokens
end

#token_countInteger (readonly)

Signature:

  • Integer

Returns:

  • (Integer)


110
111
112
# File 'lib/ibex/runtime/syntax_session.rb', line 110

def token_count
  @token_count
end

Instance Method Details

#fallback?Boolean

RBS:

  • () -> bool

Returns:

  • (Boolean)


137
138
139
# File 'lib/ibex/runtime/syntax_session.rb', line 137

def fallback?
  !@fallback_reasons.empty?
end