defmodule BinStruct.PrimitiveEncoder do @moduledoc """ Useful in `registered_callbacks` when library can't achieve automatic type conversion. ```elixir iex> BinStruct.PrimitiveEncoder.uint8(0) <<0>> ``` """ def uint8(value), do: <> def uint16_le(value), do: <> def uint16_be(value), do: <> def uint32_le(value), do: <> def uint32_be(value), do: <> def uint64_le(value), do: <> def uint64_be(value), do: <> def uint_le(value, bit_size), do: <> def uint_be(value, bit_size), do: <> def int8(value), do: <> def int16_le(value), do: <> def int16_be(value), do: <> def int32_le(value), do: <> def int32_be(value), do: <> def int64_le(value), do: <> def int64_be(value), do: <> def int_le(value, bit_size), do: <> def int_be(value, bit_size), do: <> def float32_le(value), do: <> def float32_be(value), do: <> def float64_le(value), do: <> def float64_be(value), do: <> def bool(value, bit_size \\ 8) do integer_value = case value do true -> 1 false -> 0 end <> end end