lib/gcode/model/expr/integer.ex
defmodule Gcode.Model.Expr.Integer do
defstruct i: 0
alias Gcode.Model.Expr.Integer
use Gcode.Result
@moduledoc """
Represents an integer number expression in G-code.
"""
@type t :: %Integer{i: integer}
@spec init(integer) :: Result.t(t)
def init(value) when is_integer(value),
do: ok(%Integer{i: value})
def init(value),
do: error({:expression_error, "Expected an integer value, but received #{inspect(value)}"})
end