module Sass::Compiler::Host::Protofier::CalculationValue

def from_proto(value)

def from_proto(value)
  oneof = value.value
  obj = value.public_send(oneof)
  case oneof
  when :number
    Number.from_proto(obj)
  when :calculation
    Calculation.from_proto(obj)
  when :string
    Sass::Value::String.new(obj, quoted: false)
  when :operation
    Sass::CalculationValue::CalculationOperation.new(
      CalculationOperator.from_proto(obj.operator),
      from_proto(obj.left),
      from_proto(obj.right)
    )
  else
    raise Sass::ScriptError, "Unknown CalculationValue #{value}"
  end
end

def to_proto(value)

def to_proto(value)
  case value
  when Sass::Value::Number
    EmbeddedProtocol::Value::Calculation::CalculationValue.new(
      number: Number.to_proto(value)
    )
  when Sass::Value::Calculation
    EmbeddedProtocol::Value::Calculation::CalculationValue.new(
      calculation: Calculation.to_proto(value)
    )
  when Sass::Value::String
    EmbeddedProtocol::Value::Calculation::CalculationValue.new(
      string: value.text
    )
  when Sass::CalculationValue::CalculationOperation
    EmbeddedProtocol::Value::Calculation::CalculationValue.new(
      operation: EmbeddedProtocol::Value::Calculation::CalculationOperation.new(
        operator: CalculationOperator.to_proto(value.operator),
        left: to_proto(value.left),
        right: to_proto(value.right)
      )
    )
  else
    raise Sass::ScriptError, "Unknown CalculationValue #{value}"
  end
end