module Selenium::WebDriver::BiDi::Serialization

def self.to_symbol(name, value, enum)

Other tags:
    Api: - private
def self.to_symbol(name, value, enum)
  return value if value.nil?
  return value.map { |element| to_symbol(name, element, enum) } if value.is_a?(::Array)
  enum.key(value) || raise(Error::WebDriverError, "#{name} received an unknown value: #{value.inspect}")
end

def self.to_wire(value, enum)

Other tags:
    Api: - private
def self.to_wire(value, enum)
  return value if UNSET.equal?(value) || value.nil?
  value.is_a?(::Array) ? value.map { |element| enum.fetch(element) } : enum.fetch(value)
end

def self.validate!(name, value, enum)

Other tags:
    Api: - private
def self.validate!(name, value, enum)
  return if UNSET.equal?(value) || value.nil?
  elements = value.is_a?(::Array) ? value : [value]
  invalid = elements.reject { |element| enum.key?(element) }
  return if invalid.empty?
  raise ::ArgumentError, "#{name} must be one of #{enum.keys.inspect}, got #{invalid.inspect}"
end