lib/live_view_native_swift_ui/types/rect_anchor_source.ex
defmodule LiveViewNativeSwiftUi.Types.RectAnchorSource do
@derive Jason.Encoder
defstruct [
:type,
:properties
]
use LiveViewNativePlatform.Modifier.Type
def type, do: :map
alias LiveViewNativeSwiftUi.Types.Rect
def cast({:rect = type, rect}) do
with {:ok, rect} <- Rect.cast(rect) do
{:ok, %__MODULE__{ type: type, properties: rect }}
else
_ ->
:error
end
end
def cast(:bounds = type) do
{:ok, %__MODULE__{ type: type, properties: %{} }}
end
def cast(_), do: :error
end