class RubyLsp::SorbetLevel

def false? = @level == :false

: -> bool
def false? = @level == :false

def ignore

: -> SorbetLevel
def ignore
  new("ignore")
end

def ignore? = @level == :ignore

: -> bool
def ignore? = @level == :ignore

def initialize(sigil)

: (String?) -> void
def initialize(sigil)
  @level = case sigil
  when "ignore"
    :ignore
  when "false"
    :false
  when "true"
    :true
  when "strict", "strong"
    :strict
  else
    :none
  end #: Symbol
end

def none? = @level == :none

: -> bool
def none? = @level == :none

def strict? = @level == :strict

: -> bool
def strict? = @level == :strict

def true? = @level == :true

: -> bool
def true? = @level == :true

def true_or_higher? = @level == :true || @level == :strict

: -> bool
def true_or_higher? = @level == :true || @level == :strict