mix dextrin.gen.schema (Dextrin v0.1.0)

Copy Markdown View Source
$ mix dextrin.gen.schema MyApp.Point
$ mix dextrin.gen.schema MyApp.Point --out point.dxns --name Point

Introspects Module's field list (always available for any compiled struct) and guesses each field's DXN type from its default value's runtime type — not from @type t() typespecs. Typespec extraction (via Erlang/Elixir's typespec debug-info chunk API) needs a :debug_info chunk that isn't guaranteed present for every compiled module (dependencies built for production commonly strip it), so it can't be relied on as the primary source; a field whose default is nil, or that has no confident mapping, becomes :any rather than a guess either way.

This is explicitly a starting point to review and tighten by hand, not a claim that struct → .dxns translation is lossless.