module Lutaml::Model::Type
def cast(value, type)
def cast(value, type) return nil if value.nil? lookup(type).cast(value) end
def lookup(type_name)
def lookup(type_name) return type_name if type_name.is_a?(Class) @registry ||= {} klass = @registry[type_name.to_sym] raise UnknownTypeError.new(type_name) unless klass klass end
def register(type_name, type_class)
def register(type_name, type_class) unless type_class < Value raise TypeError, "class '#{type_class}' is not a valid Lutaml::Model::Type::Value" end @registry ||= {} @registry[type_name.to_sym] = type_class end
def register_builtin_types
def register_builtin_types TYPE_CODES.each do |type_name, type_class| register(type_name, const_get(type_class)) end end
def serialize(value, type)
def serialize(value, type) return nil if value.nil? lookup(type).serialize(value) end