class T::Types::TypedHash
def initialize(keys:, values:)
def initialize(keys:, values:) @inner_keys = keys @inner_values = values end
def keys
def keys @keys ||= T::Utils.coerce(@inner_keys) end
def name
def name "T::Hash[#{keys.name}, #{values.name}]" end
def new(*args, &blk)
def new(*args, &blk) Hash.new(*T.unsafe(args), &blk) end
def recursively_valid?(obj)
def recursively_valid?(obj) obj.is_a?(Hash) && super end
def type
def type @type ||= T::Utils.coerce([keys, values]) end
def underlying_class
def underlying_class Hash end
def valid?(obj)
def valid?(obj) obj.is_a?(Hash) end
def values
def values @values ||= T::Utils.coerce(@inner_values) end