mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-06 00:02:08 -04:00
using Hash#new(capacity: ) to better predict size; reduce the number of allocated arrays by passing the result of to the store when possible, and only calling #downcased(str) once; #array_value will also not try to clean up errors in the passed data (it'll either fail loudly, or be fixed downstream)
52 lines
1.3 KiB
Plaintext
52 lines
1.3 KiB
Plaintext
module HTTPX
|
|
class Headers
|
|
include _ToS
|
|
|
|
@headers: Hash[String, Array[_ToS]]
|
|
|
|
def self.new: (?untyped headers) -> instance
|
|
|
|
def ==: (untyped other) -> bool
|
|
|
|
def []: (String field) -> String?
|
|
def []=: (String field, headers_value value) -> void
|
|
|
|
def add: (String field, String value) -> void
|
|
def delete: (String field) -> Array[_ToS]?
|
|
|
|
def each: (?_Each[[String, String]]? extra_headers) { (String k, String v) -> void } -> void
|
|
| (?_Each[[String, String]]? extra_headers) -> Enumerable[[String, String]]
|
|
|
|
def get: (String field) -> Array[_ToS]
|
|
def key?: (String downcased_key) -> bool
|
|
|
|
def merge: (_Each[[String, headers_value]] other) -> Headers
|
|
|
|
def same_headers?: (untyped headers) -> bool
|
|
|
|
def empty?: () -> bool
|
|
|
|
def to_a: () -> Array[[String, String]]
|
|
|
|
def to_hash: () -> Hash[String, String]
|
|
|
|
alias to_h to_hash
|
|
|
|
def inspect: () -> String
|
|
|
|
private
|
|
|
|
def initialize: (?(headers_input | instance)?) -> void
|
|
|
|
def array_value: (headers_value value) -> Array[_ToS]
|
|
|
|
def downcased: (header_field field) -> String
|
|
end
|
|
|
|
type header_field = string | _ToS
|
|
type headers_value = _ToS | Array[_ToS]
|
|
type headers_hash = Hash[header_field, headers_value]
|
|
type headers_input = headers_hash | Array[[header_field, headers_value]]
|
|
type headers = Headers | headers_input
|
|
end
|