Pass 3: converts resolved GNU unit definitions into Localize custom unit registrations.
Maps GNU primitive dimensions to CLDR base unit names, determines
categories, and either registers units directly or produces .exs
export data.
Summary
Functions
Extracts dimensionless resolved entries as named constants.
Registers all resolved definitions via Localize.Unit.define_unit/2.
Converts resolved definitions into a list of definition maps suitable
for Localize.Unit.load_custom_units/1.
Functions
@spec constants(%{required(String.t()) => {float(), map()}}) :: %{ required(String.t()) => number() }
Extracts dimensionless resolved entries as named constants.
Returns a map of %{name => numeric_value} suitable for use as
let bindings in a Unity evaluation environment.
Arguments
resolved— map ofname => {factor, dimensions}from the resolver.
Returns
- A map of
%{String.t() => number()}.
@spec register_all(%{required(String.t()) => {float(), map()}}) :: %{ imported: non_neg_integer(), skipped: non_neg_integer(), errors: [{String.t(), String.t()}] }
Registers all resolved definitions via Localize.Unit.define_unit/2.
Arguments
resolved— map ofname => {factor, dimensions}from the resolver.
Returns
%{imported: count, skipped: count, errors: [{name, reason}]}
Converts resolved definitions into a list of definition maps suitable
for Localize.Unit.load_custom_units/1.