@@ -19,6 +19,14 @@ defmodule HPAX do
19
19
20
20
alias HPAX . { Table , Types }
21
21
22
+ @ typedoc """
23
+ An HPACK table.
24
+
25
+ This can be used for encoding or decoding.
26
+ """
27
+ @ typedoc since: "0.2.0"
28
+ @ opaque table ( ) :: Table . t ( )
29
+
22
30
@ typedoc """
23
31
An HPACK header name.
24
32
"""
@@ -36,7 +44,7 @@ defmodule HPAX do
36
44
37
45
Same as `new/2` with default options.
38
46
"""
39
- @ spec new ( non_neg_integer ( ) ) :: Table . t ( )
47
+ @ spec new ( non_neg_integer ( ) ) :: table ( )
40
48
def new ( max_table_size ) , do: new ( max_table_size , [ ] )
41
49
42
50
@ doc """
@@ -50,7 +58,7 @@ defmodule HPAX do
50
58
51
59
This function accepts the following `options`:
52
60
53
- * `:huffman_encoding` - (since 0.3 .0) `:always` or `:never`. If `:always`,
61
+ * `:huffman_encoding` - (since 0.2 .0) `:always` or `:never`. If `:always`,
54
62
then HPAX will always encode headers using Huffman encoding. If `:never`,
55
63
HPAX will not use any Huffman encoding. Defaults to `:never`.
56
64
@@ -59,8 +67,8 @@ defmodule HPAX do
59
67
encoding_context = HPAX.new(4096)
60
68
61
69
"""
62
- @ doc since: "0.3 .0"
63
- @ spec new ( non_neg_integer ( ) , [ keyword ( ) ] ) :: Table . t ( )
70
+ @ doc since: "0.2 .0"
71
+ @ spec new ( non_neg_integer ( ) , [ keyword ( ) ] ) :: table ( )
64
72
def new ( max_table_size , options )
65
73
when is_integer ( max_table_size ) and max_table_size >= 0 and is_list ( options ) do
66
74
options = Keyword . put_new ( options , :huffman_encoding , :never )
@@ -82,7 +90,7 @@ defmodule HPAX do
82
90
HPAX.resize(decoding_context, 8192)
83
91
84
92
"""
85
- @ spec resize ( Table . t ( ) , non_neg_integer ( ) ) :: Table . t ( )
93
+ @ spec resize ( table ( ) , non_neg_integer ( ) ) :: table ( )
86
94
defdelegate resize ( table , new_size ) , to: Table
87
95
88
96
@ doc """
@@ -100,8 +108,8 @@ defmodule HPAX do
100
108
#=> {:ok, [{":method", "GET"}], decoding_context}
101
109
102
110
"""
103
- @ spec decode ( binary ( ) , Table . t ( ) ) ::
104
- { :ok , [ { header_name ( ) , header_value ( ) } ] , Table . t ( ) } | { :error , term ( ) }
111
+ @ spec decode ( binary ( ) , table ( ) ) ::
112
+ { :ok , [ { header_name ( ) , header_value ( ) } ] , table ( ) } | { :error , term ( ) }
105
113
106
114
# Dynamic resizes must occur only at the start of a block
107
115
# https://datatracker.ietf.org/doc/html/rfc7541#section-4.2
@@ -137,7 +145,7 @@ defmodule HPAX do
137
145
#=> {iodata, updated_encoding_context}
138
146
139
147
"""
140
- @ spec encode ( [ header ] , Table . t ( ) ) :: { iodata ( ) , Table . t ( ) }
148
+ @ spec encode ( [ header ] , table ( ) ) :: { iodata ( ) , table ( ) }
141
149
when header: { action , header_name ( ) , header_value ( ) } ,
142
150
action: :store | :store_name | :no_store | :never_store
143
151
def encode ( headers , % Table { } = table ) when is_list ( headers ) do
@@ -159,7 +167,7 @@ defmodule HPAX do
159
167
160
168
"""
161
169
@ doc since: "0.2.0"
162
- @ spec encode ( action , [ header ] , Table . t ( ) ) :: { iodata ( ) , Table . t ( ) }
170
+ @ spec encode ( action , [ header ] , table ( ) ) :: { iodata ( ) , table ( ) }
163
171
when action: :store | :store_name | :no_store | :never_store ,
164
172
header: { header_name ( ) , header_value ( ) }
165
173
def encode ( action , headers , % Table { } = table )
0 commit comments