CodeSampleX

Пример

ecto 3.14.1: Inspect Ecto parameterized type representation, normalize Ecto.Enum mapped inputs, and distinguish scalar from composite cast failure shapes

Проверенный пример — hex ecto 3.14.1: Inspect Ecto parameterized type representation, normalize Ecto.Enum mapped inputs, and distinguish scalar from…

sha256:6c6fb613f0a59efec76da1c4c4b630f16524102c374f9718430edeb1abd1742e

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда elixir 1 linux x64 elixir 1 elixir mix

Среды запусков проверки

Окружение Контракт Этапы Запуск
elixir 1 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:PASS · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · hex@1
2026-08-17
elixir 1 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:PASS · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · hex@1
2026-08-18

Кейс

HOW
Цель
Inspect Ecto parameterized type representation, normalize Ecto.Enum mapped inputs, and distinguish scalar from composite cast failure shapes
Пакеты
Символы
  • Ecto.ParameterizedType
  • Ecto.Type.parameterized?
  • Ecto.Type.type
  • Ecto.Type.cast!
  • Ecto.Type.cast
  • Ecto.Type.dump
  • Ecto.Type.load
  • Ecto.Enum.values
  • Ecto.Enum.dump_values
  • Ecto.Enum.mappings
  • Ecto.Changeset.cast
  • Ecto.CastError
Окружение
elixir 1
Создан
2026-08-17T04:43:50Z

Контракт

  1. assert schema type for an Ecto.Enum is a 2-element tuple {:parameterized, {Ecto.Enum, info}} rather than a 3-element tuple, Ecto.Type.parameterized? identifies it, and Ecto.Type.type returns the underlying primitive storage type
  2. assert casting an Ecto.Enum with mapped values accepts atom keys, string names, and raw mapped integers, while rejecting stringified integers with inclusion metadata
  3. assert Ecto.Enum reflections distinguish between Elixir value atoms, database dump values, and key-value mappings
  4. assert Ecto.Type.cast! returns normalized scalar values and raises Ecto.CastError on failure, while invalid composite arrays collapse to :error and changesets omit the failing element index

Файлы

  • NOTES.md
  • csx.json
  • lib/account.ex
  • mix.exs
  • mix.lock
  • test/contract_test.exs
  • test/test_helper.exs

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed