Packages

Native desktop GUIs from Elixir, powered by iced

Retired package: Renamed - Package has been renamed to plushie: hex.pm/packages/plushie

Current section

Files

Jump to
toddy lib toddy iced shaping.ex
Raw

lib/toddy/iced/shaping.ex

defmodule Toddy.Iced.Shaping do
@moduledoc """
Text shaping strategy for the text `shaping` prop.
Maps to iced's `text::Shaping` enum.
"""
@type t :: :basic | :advanced | :auto
@valid [:basic, :advanced, :auto]
@doc """
Encodes a shaping value to the wire format.
## Examples
iex> Toddy.Iced.Shaping.encode(:basic)
"basic"
iex> Toddy.Iced.Shaping.encode(:advanced)
"advanced"
iex> Toddy.Iced.Shaping.encode(:auto)
"auto"
"""
@spec encode(shaping :: t()) :: String.t()
def encode(value) when value in @valid, do: Atom.to_string(value)
end