lib/turbopuffer/models.rb
# frozen_string_literal: true module Turbopuffer [Turbopuffer::Internal::Type::BaseModel, *Turbopuffer::Internal::Type::BaseModel.subclasses].each do |cls| cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, Turbopuffer::Internal::AnyHash) } } end Turbopuffer::Internal::Util.walk_namespaces(Turbopuffer::Models).each do |mod| case mod in Turbopuffer::Internal::Type::Enum | Turbopuffer::Internal::Type::Union mod.constants.each do |name| case mod.const_get(name) in true | false mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } } mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } } in Integer mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } } mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } } in Float mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } } mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } } in Symbol mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } } mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } } else end end else end end Turbopuffer::Internal::Util.walk_namespaces(Turbopuffer::Models) .lazy .grep(Turbopuffer::Internal::Type::Union) .each do |mod| const = :Variants next if mod.sorbet_constant_defined?(const) mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } } end AttributeSchema = Turbopuffer::Models::AttributeSchema AttributeSchemaConfig = Turbopuffer::Models::AttributeSchemaConfig AttributeType = Turbopuffer::Models::AttributeType ClientNamespacesParams = Turbopuffer::Models::ClientNamespacesParams Columns = Turbopuffer::Models::Columns DistanceMetric = Turbopuffer::Models::DistanceMetric FullTextSearch = Turbopuffer::Models::FullTextSearch FullTextSearchConfig = Turbopuffer::Models::FullTextSearchConfig ID = Turbopuffer::Models::ID IncludeAttributes = Turbopuffer::Models::IncludeAttributes Language = Turbopuffer::Models::Language NamespaceDeleteAllParams = Turbopuffer::Models::NamespaceDeleteAllParams NamespaceHintCacheWarmParams = Turbopuffer::Models::NamespaceHintCacheWarmParams NamespaceMetadata = Turbopuffer::Models::NamespaceMetadata NamespaceMetadataParams = Turbopuffer::Models::NamespaceMetadataParams NamespaceMultiQueryParams = Turbopuffer::Models::NamespaceMultiQueryParams NamespaceQueryParams = Turbopuffer::Models::NamespaceQueryParams NamespaceRecallParams = Turbopuffer::Models::NamespaceRecallParams NamespaceSchemaParams = Turbopuffer::Models::NamespaceSchemaParams NamespaceSummary = Turbopuffer::Models::NamespaceSummary NamespaceUpdateSchemaParams = Turbopuffer::Models::NamespaceUpdateSchemaParams NamespaceWriteParams = Turbopuffer::Models::NamespaceWriteParams Query = Turbopuffer::Models::Query QueryBilling = Turbopuffer::Models::QueryBilling QueryPerformance = Turbopuffer::Models::QueryPerformance Row = Turbopuffer::Models::Row Tokenizer = Turbopuffer::Models::Tokenizer Vector = Turbopuffer::Models::Vector VectorEncoding = Turbopuffer::Models::VectorEncoding WriteBilling = Turbopuffer::Models::WriteBilling end