Class: Ibex::Runtime::SyntaxSessionMetrics

Inherits:
Object
  • Object
show all
Defined in:
lib/json5/generated_parser.rb

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



4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
# File 'lib/json5/generated_parser.rb', line 4040

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_reasonsObject (readonly)

Signature:

  • Array[Symbol]



4036
4037
4038
# File 'lib/json5/generated_parser.rb', line 4036

def fallback_reasons
  @fallback_reasons
end

#reused_ratioObject (readonly)

Signature:

  • Float



4033
4034
4035
# File 'lib/json5/generated_parser.rb', line 4033

def reused_ratio
  @reused_ratio
end

#reused_tokensObject (readonly)

Signature:

  • Integer



4034
4035
4036
# File 'lib/json5/generated_parser.rb', line 4034

def reused_tokens
  @reused_tokens
end

#token_countObject (readonly)

Signature:

  • Integer



4035
4036
4037
# File 'lib/json5/generated_parser.rb', line 4035

def token_count
  @token_count
end

Instance Method Details

#fallback?Boolean

RBS:

  • () -> bool

Returns:

  • (Boolean)


4062
4063
4064
# File 'lib/json5/generated_parser.rb', line 4062

def fallback?
  !@fallback_reasons.empty?
end