alef 0.115.5

Opinionated polyglot binding generator for Rust libraries
Documentation
{{ producer }}
ExUnit.start(autorun: false)
defmodule PayloadProbe do
  import ExUnit.Assertions
  def verify(result) do
{{ assertions }}
  end
end
parts = [Sample.Piece.text("hello"), Sample.Piece.text(" world")]
PayloadProbe.verify(%{content: %{parts: parts}})
invalid = [
  %{content: %{parts: Enum.take(parts, 1)}},
  %{content: %{parts: [Sample.Piece.text("wrong"), Enum.at(parts, 1)]}},
  %{content: %{parts: [Enum.at(parts, 0), Sample.Piece.text("wrong")]}},
  %{content: %{parts: "xx"}},
  %{content: %{parts: nil}},
  %{content: nil}
]
for value <- invalid do
  failed = try do
    PayloadProbe.verify(value)
    false
  rescue
    _ -> true
  end
  unless failed, do: raise("invalid payload passed")
end
old_failed = try do
  Enum.at(parts, 0).text
  false
rescue
  BadMapError -> true
end
unless old_failed, do: raise("old tuple read did not fail with BadMapError")
IO.puts("verified #{length(invalid) + 1} Elixir payload cases and old tuple failure")