class T::Enum
def self.serialize(instance)
def self.serialize(instance) # This is needed otherwise if a Chalk::ODM::Document with a property of the shape # T::Hash[T.nilable(MyEnum), Integer] and a value that looks like {nil => 0} is # serialized, we throw the error on L102. return nil if instance.nil? if self == T::Enum raise "Cannot call T::Enum.serialize directly. You must call on a specific child class." end if instance.class != self raise "Cannot call #serialize on a value that is not an instance of #{self}." end instance.serialize end