Class: Ibex::Runtime::SyntaxSessionMetrics
- Inherits:
-
Object
- Object
- Ibex::Runtime::SyntaxSessionMetrics
- Defined in:
- lib/json5/generated_parser.rb
Overview
Immutable evidence from one completed syntax-session operation.
Instance Attribute Summary collapse
- #fallback_reasons ⇒ Object readonly
- #reused_ratio ⇒ Object readonly
- #reused_tokens ⇒ Object readonly
- #token_count ⇒ Object readonly
Instance Method Summary collapse
- #fallback? ⇒ Boolean
-
#initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:) ⇒ SyntaxSessionMetrics
constructor
A new instance of SyntaxSessionMetrics.
Constructor Details
#initialize(reused_ratio:, reused_tokens:, token_count:, fallback_reasons:) ⇒ SyntaxSessionMetrics
Returns a new instance of SyntaxSessionMetrics.
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_reasons ⇒ Object (readonly)
4036 4037 4038 |
# File 'lib/json5/generated_parser.rb', line 4036 def fallback_reasons @fallback_reasons end |
#reused_ratio ⇒ Object (readonly)
4033 4034 4035 |
# File 'lib/json5/generated_parser.rb', line 4033 def reused_ratio @reused_ratio end |
#reused_tokens ⇒ Object (readonly)
4034 4035 4036 |
# File 'lib/json5/generated_parser.rb', line 4034 def reused_tokens @reused_tokens end |
#token_count ⇒ Object (readonly)
4035 4036 4037 |
# File 'lib/json5/generated_parser.rb', line 4035 def token_count @token_count end |
Instance Method Details
#fallback? ⇒ Boolean
4062 4063 4064 |
# File 'lib/json5/generated_parser.rb', line 4062 def fallback? !@fallback_reasons.empty? end |