@@ -146,6 +146,64 @@ extension Base64 {
146
146
UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 7 " ) , UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " + " ) , UInt8 ( ascii: " / " ) ,
147
147
]
148
148
149
+ static let encoding0url : [ UInt8 ] = [
150
+ UInt8 ( ascii: " A " ) , UInt8 ( ascii: " A " ) , UInt8 ( ascii: " A " ) , UInt8 ( ascii: " A " ) , UInt8 ( ascii: " B " ) , UInt8 ( ascii: " B " ) , UInt8 ( ascii: " B " ) , UInt8 ( ascii: " B " ) , UInt8 ( ascii: " C " ) , UInt8 ( ascii: " C " ) ,
151
+ UInt8 ( ascii: " C " ) , UInt8 ( ascii: " C " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " E " ) , UInt8 ( ascii: " E " ) , UInt8 ( ascii: " E " ) , UInt8 ( ascii: " E " ) ,
152
+ UInt8 ( ascii: " F " ) , UInt8 ( ascii: " F " ) , UInt8 ( ascii: " F " ) , UInt8 ( ascii: " F " ) , UInt8 ( ascii: " G " ) , UInt8 ( ascii: " G " ) , UInt8 ( ascii: " G " ) , UInt8 ( ascii: " G " ) , UInt8 ( ascii: " H " ) , UInt8 ( ascii: " H " ) ,
153
+ UInt8 ( ascii: " H " ) , UInt8 ( ascii: " H " ) , UInt8 ( ascii: " I " ) , UInt8 ( ascii: " I " ) , UInt8 ( ascii: " I " ) , UInt8 ( ascii: " I " ) , UInt8 ( ascii: " J " ) , UInt8 ( ascii: " J " ) , UInt8 ( ascii: " J " ) , UInt8 ( ascii: " J " ) ,
154
+ UInt8 ( ascii: " K " ) , UInt8 ( ascii: " K " ) , UInt8 ( ascii: " K " ) , UInt8 ( ascii: " K " ) , UInt8 ( ascii: " L " ) , UInt8 ( ascii: " L " ) , UInt8 ( ascii: " L " ) , UInt8 ( ascii: " L " ) , UInt8 ( ascii: " M " ) , UInt8 ( ascii: " M " ) ,
155
+ UInt8 ( ascii: " M " ) , UInt8 ( ascii: " M " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " O " ) , UInt8 ( ascii: " O " ) , UInt8 ( ascii: " O " ) , UInt8 ( ascii: " O " ) ,
156
+ UInt8 ( ascii: " P " ) , UInt8 ( ascii: " P " ) , UInt8 ( ascii: " P " ) , UInt8 ( ascii: " P " ) , UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " R " ) , UInt8 ( ascii: " R " ) ,
157
+ UInt8 ( ascii: " R " ) , UInt8 ( ascii: " R " ) , UInt8 ( ascii: " S " ) , UInt8 ( ascii: " S " ) , UInt8 ( ascii: " S " ) , UInt8 ( ascii: " S " ) , UInt8 ( ascii: " T " ) , UInt8 ( ascii: " T " ) , UInt8 ( ascii: " T " ) , UInt8 ( ascii: " T " ) ,
158
+ UInt8 ( ascii: " U " ) , UInt8 ( ascii: " U " ) , UInt8 ( ascii: " U " ) , UInt8 ( ascii: " U " ) , UInt8 ( ascii: " V " ) , UInt8 ( ascii: " V " ) , UInt8 ( ascii: " V " ) , UInt8 ( ascii: " V " ) , UInt8 ( ascii: " W " ) , UInt8 ( ascii: " W " ) ,
159
+ UInt8 ( ascii: " W " ) , UInt8 ( ascii: " W " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " Y " ) , UInt8 ( ascii: " Y " ) , UInt8 ( ascii: " Y " ) , UInt8 ( ascii: " Y " ) ,
160
+ UInt8 ( ascii: " Z " ) , UInt8 ( ascii: " Z " ) , UInt8 ( ascii: " Z " ) , UInt8 ( ascii: " Z " ) , UInt8 ( ascii: " a " ) , UInt8 ( ascii: " a " ) , UInt8 ( ascii: " a " ) , UInt8 ( ascii: " a " ) , UInt8 ( ascii: " b " ) , UInt8 ( ascii: " b " ) ,
161
+ UInt8 ( ascii: " b " ) , UInt8 ( ascii: " b " ) , UInt8 ( ascii: " c " ) , UInt8 ( ascii: " c " ) , UInt8 ( ascii: " c " ) , UInt8 ( ascii: " c " ) , UInt8 ( ascii: " d " ) , UInt8 ( ascii: " d " ) , UInt8 ( ascii: " d " ) , UInt8 ( ascii: " d " ) ,
162
+ UInt8 ( ascii: " e " ) , UInt8 ( ascii: " e " ) , UInt8 ( ascii: " e " ) , UInt8 ( ascii: " e " ) , UInt8 ( ascii: " f " ) , UInt8 ( ascii: " f " ) , UInt8 ( ascii: " f " ) , UInt8 ( ascii: " f " ) , UInt8 ( ascii: " g " ) , UInt8 ( ascii: " g " ) ,
163
+ UInt8 ( ascii: " g " ) , UInt8 ( ascii: " g " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " i " ) , UInt8 ( ascii: " i " ) , UInt8 ( ascii: " i " ) , UInt8 ( ascii: " i " ) ,
164
+ UInt8 ( ascii: " j " ) , UInt8 ( ascii: " j " ) , UInt8 ( ascii: " j " ) , UInt8 ( ascii: " j " ) , UInt8 ( ascii: " k " ) , UInt8 ( ascii: " k " ) , UInt8 ( ascii: " k " ) , UInt8 ( ascii: " k " ) , UInt8 ( ascii: " l " ) , UInt8 ( ascii: " l " ) ,
165
+ UInt8 ( ascii: " l " ) , UInt8 ( ascii: " l " ) , UInt8 ( ascii: " m " ) , UInt8 ( ascii: " m " ) , UInt8 ( ascii: " m " ) , UInt8 ( ascii: " m " ) , UInt8 ( ascii: " n " ) , UInt8 ( ascii: " n " ) , UInt8 ( ascii: " n " ) , UInt8 ( ascii: " n " ) ,
166
+ UInt8 ( ascii: " o " ) , UInt8 ( ascii: " o " ) , UInt8 ( ascii: " o " ) , UInt8 ( ascii: " o " ) , UInt8 ( ascii: " p " ) , UInt8 ( ascii: " p " ) , UInt8 ( ascii: " p " ) , UInt8 ( ascii: " p " ) , UInt8 ( ascii: " q " ) , UInt8 ( ascii: " q " ) ,
167
+ UInt8 ( ascii: " q " ) , UInt8 ( ascii: " q " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " s " ) , UInt8 ( ascii: " s " ) , UInt8 ( ascii: " s " ) , UInt8 ( ascii: " s " ) ,
168
+ UInt8 ( ascii: " t " ) , UInt8 ( ascii: " t " ) , UInt8 ( ascii: " t " ) , UInt8 ( ascii: " t " ) , UInt8 ( ascii: " u " ) , UInt8 ( ascii: " u " ) , UInt8 ( ascii: " u " ) , UInt8 ( ascii: " u " ) , UInt8 ( ascii: " v " ) , UInt8 ( ascii: " v " ) ,
169
+ UInt8 ( ascii: " v " ) , UInt8 ( ascii: " v " ) , UInt8 ( ascii: " w " ) , UInt8 ( ascii: " w " ) , UInt8 ( ascii: " w " ) , UInt8 ( ascii: " w " ) , UInt8 ( ascii: " x " ) , UInt8 ( ascii: " x " ) , UInt8 ( ascii: " x " ) , UInt8 ( ascii: " x " ) ,
170
+ UInt8 ( ascii: " y " ) , UInt8 ( ascii: " y " ) , UInt8 ( ascii: " y " ) , UInt8 ( ascii: " y " ) , UInt8 ( ascii: " z " ) , UInt8 ( ascii: " z " ) , UInt8 ( ascii: " z " ) , UInt8 ( ascii: " z " ) , UInt8 ( ascii: " 0 " ) , UInt8 ( ascii: " 0 " ) ,
171
+ UInt8 ( ascii: " 0 " ) , UInt8 ( ascii: " 0 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 2 " ) , UInt8 ( ascii: " 2 " ) , UInt8 ( ascii: " 2 " ) , UInt8 ( ascii: " 2 " ) ,
172
+ UInt8 ( ascii: " 3 " ) , UInt8 ( ascii: " 3 " ) , UInt8 ( ascii: " 3 " ) , UInt8 ( ascii: " 3 " ) , UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 5 " ) , UInt8 ( ascii: " 5 " ) ,
173
+ UInt8 ( ascii: " 5 " ) , UInt8 ( ascii: " 5 " ) , UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 7 " ) , UInt8 ( ascii: " 7 " ) , UInt8 ( ascii: " 7 " ) , UInt8 ( ascii: " 7 " ) ,
174
+ UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " - " ) , UInt8 ( ascii: " - " ) ,
175
+ UInt8 ( ascii: " - " ) , UInt8 ( ascii: " - " ) , UInt8 ( ascii: " _ " ) , UInt8 ( ascii: " _ " ) , UInt8 ( ascii: " _ " ) , UInt8 ( ascii: " _ " ) ,
176
+ ]
177
+
178
+ static let encoding1url : [ UInt8 ] = [
179
+ UInt8 ( ascii: " A " ) , UInt8 ( ascii: " B " ) , UInt8 ( ascii: " C " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " E " ) , UInt8 ( ascii: " F " ) , UInt8 ( ascii: " G " ) , UInt8 ( ascii: " H " ) , UInt8 ( ascii: " I " ) , UInt8 ( ascii: " J " ) ,
180
+ UInt8 ( ascii: " K " ) , UInt8 ( ascii: " L " ) , UInt8 ( ascii: " M " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " O " ) , UInt8 ( ascii: " P " ) , UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " R " ) , UInt8 ( ascii: " S " ) , UInt8 ( ascii: " T " ) ,
181
+ UInt8 ( ascii: " U " ) , UInt8 ( ascii: " V " ) , UInt8 ( ascii: " W " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " Y " ) , UInt8 ( ascii: " Z " ) , UInt8 ( ascii: " a " ) , UInt8 ( ascii: " b " ) , UInt8 ( ascii: " c " ) , UInt8 ( ascii: " d " ) ,
182
+ UInt8 ( ascii: " e " ) , UInt8 ( ascii: " f " ) , UInt8 ( ascii: " g " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " i " ) , UInt8 ( ascii: " j " ) , UInt8 ( ascii: " k " ) , UInt8 ( ascii: " l " ) , UInt8 ( ascii: " m " ) , UInt8 ( ascii: " n " ) ,
183
+ UInt8 ( ascii: " o " ) , UInt8 ( ascii: " p " ) , UInt8 ( ascii: " q " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " s " ) , UInt8 ( ascii: " t " ) , UInt8 ( ascii: " u " ) , UInt8 ( ascii: " v " ) , UInt8 ( ascii: " w " ) , UInt8 ( ascii: " x " ) ,
184
+ UInt8 ( ascii: " y " ) , UInt8 ( ascii: " z " ) , UInt8 ( ascii: " 0 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 2 " ) , UInt8 ( ascii: " 3 " ) , UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 5 " ) , UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 7 " ) ,
185
+ UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " - " ) , UInt8 ( ascii: " _ " ) , UInt8 ( ascii: " A " ) , UInt8 ( ascii: " B " ) , UInt8 ( ascii: " C " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " E " ) , UInt8 ( ascii: " F " ) ,
186
+ UInt8 ( ascii: " G " ) , UInt8 ( ascii: " H " ) , UInt8 ( ascii: " I " ) , UInt8 ( ascii: " J " ) , UInt8 ( ascii: " K " ) , UInt8 ( ascii: " L " ) , UInt8 ( ascii: " M " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " O " ) , UInt8 ( ascii: " P " ) ,
187
+ UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " R " ) , UInt8 ( ascii: " S " ) , UInt8 ( ascii: " T " ) , UInt8 ( ascii: " U " ) , UInt8 ( ascii: " V " ) , UInt8 ( ascii: " W " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " Y " ) , UInt8 ( ascii: " Z " ) ,
188
+ UInt8 ( ascii: " a " ) , UInt8 ( ascii: " b " ) , UInt8 ( ascii: " c " ) , UInt8 ( ascii: " d " ) , UInt8 ( ascii: " e " ) , UInt8 ( ascii: " f " ) , UInt8 ( ascii: " g " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " i " ) , UInt8 ( ascii: " j " ) ,
189
+ UInt8 ( ascii: " k " ) , UInt8 ( ascii: " l " ) , UInt8 ( ascii: " m " ) , UInt8 ( ascii: " n " ) , UInt8 ( ascii: " o " ) , UInt8 ( ascii: " p " ) , UInt8 ( ascii: " q " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " s " ) , UInt8 ( ascii: " t " ) ,
190
+ UInt8 ( ascii: " u " ) , UInt8 ( ascii: " v " ) , UInt8 ( ascii: " w " ) , UInt8 ( ascii: " x " ) , UInt8 ( ascii: " y " ) , UInt8 ( ascii: " z " ) , UInt8 ( ascii: " 0 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 2 " ) , UInt8 ( ascii: " 3 " ) ,
191
+ UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 5 " ) , UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 7 " ) , UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " - " ) , UInt8 ( ascii: " _ " ) , UInt8 ( ascii: " A " ) , UInt8 ( ascii: " B " ) ,
192
+ UInt8 ( ascii: " C " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " E " ) , UInt8 ( ascii: " F " ) , UInt8 ( ascii: " G " ) , UInt8 ( ascii: " H " ) , UInt8 ( ascii: " I " ) , UInt8 ( ascii: " J " ) , UInt8 ( ascii: " K " ) , UInt8 ( ascii: " L " ) ,
193
+ UInt8 ( ascii: " M " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " O " ) , UInt8 ( ascii: " P " ) , UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " R " ) , UInt8 ( ascii: " S " ) , UInt8 ( ascii: " T " ) , UInt8 ( ascii: " U " ) , UInt8 ( ascii: " V " ) ,
194
+ UInt8 ( ascii: " W " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " Y " ) , UInt8 ( ascii: " Z " ) , UInt8 ( ascii: " a " ) , UInt8 ( ascii: " b " ) , UInt8 ( ascii: " c " ) , UInt8 ( ascii: " d " ) , UInt8 ( ascii: " e " ) , UInt8 ( ascii: " f " ) ,
195
+ UInt8 ( ascii: " g " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " i " ) , UInt8 ( ascii: " j " ) , UInt8 ( ascii: " k " ) , UInt8 ( ascii: " l " ) , UInt8 ( ascii: " m " ) , UInt8 ( ascii: " n " ) , UInt8 ( ascii: " o " ) , UInt8 ( ascii: " p " ) ,
196
+ UInt8 ( ascii: " q " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " s " ) , UInt8 ( ascii: " t " ) , UInt8 ( ascii: " u " ) , UInt8 ( ascii: " v " ) , UInt8 ( ascii: " w " ) , UInt8 ( ascii: " x " ) , UInt8 ( ascii: " y " ) , UInt8 ( ascii: " z " ) ,
197
+ UInt8 ( ascii: " 0 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 2 " ) , UInt8 ( ascii: " 3 " ) , UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 5 " ) , UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 7 " ) , UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 9 " ) ,
198
+ UInt8 ( ascii: " - " ) , UInt8 ( ascii: " _ " ) , UInt8 ( ascii: " A " ) , UInt8 ( ascii: " B " ) , UInt8 ( ascii: " C " ) , UInt8 ( ascii: " D " ) , UInt8 ( ascii: " E " ) , UInt8 ( ascii: " F " ) , UInt8 ( ascii: " G " ) , UInt8 ( ascii: " H " ) ,
199
+ UInt8 ( ascii: " I " ) , UInt8 ( ascii: " J " ) , UInt8 ( ascii: " K " ) , UInt8 ( ascii: " L " ) , UInt8 ( ascii: " M " ) , UInt8 ( ascii: " N " ) , UInt8 ( ascii: " O " ) , UInt8 ( ascii: " P " ) , UInt8 ( ascii: " Q " ) , UInt8 ( ascii: " R " ) ,
200
+ UInt8 ( ascii: " S " ) , UInt8 ( ascii: " T " ) , UInt8 ( ascii: " U " ) , UInt8 ( ascii: " V " ) , UInt8 ( ascii: " W " ) , UInt8 ( ascii: " X " ) , UInt8 ( ascii: " Y " ) , UInt8 ( ascii: " Z " ) , UInt8 ( ascii: " a " ) , UInt8 ( ascii: " b " ) ,
201
+ UInt8 ( ascii: " c " ) , UInt8 ( ascii: " d " ) , UInt8 ( ascii: " e " ) , UInt8 ( ascii: " f " ) , UInt8 ( ascii: " g " ) , UInt8 ( ascii: " h " ) , UInt8 ( ascii: " i " ) , UInt8 ( ascii: " j " ) , UInt8 ( ascii: " k " ) , UInt8 ( ascii: " l " ) ,
202
+ UInt8 ( ascii: " m " ) , UInt8 ( ascii: " n " ) , UInt8 ( ascii: " o " ) , UInt8 ( ascii: " p " ) , UInt8 ( ascii: " q " ) , UInt8 ( ascii: " r " ) , UInt8 ( ascii: " s " ) , UInt8 ( ascii: " t " ) , UInt8 ( ascii: " u " ) , UInt8 ( ascii: " v " ) ,
203
+ UInt8 ( ascii: " w " ) , UInt8 ( ascii: " x " ) , UInt8 ( ascii: " y " ) , UInt8 ( ascii: " z " ) , UInt8 ( ascii: " 0 " ) , UInt8 ( ascii: " 1 " ) , UInt8 ( ascii: " 2 " ) , UInt8 ( ascii: " 3 " ) , UInt8 ( ascii: " 4 " ) , UInt8 ( ascii: " 5 " ) ,
204
+ UInt8 ( ascii: " 6 " ) , UInt8 ( ascii: " 7 " ) , UInt8 ( ascii: " 8 " ) , UInt8 ( ascii: " 9 " ) , UInt8 ( ascii: " - " ) , UInt8 ( ascii: " _ " ) ,
205
+ ]
206
+
149
207
static func encodeToBytes< Buffer: Collection > ( bytes: Buffer , options: Data . Base64EncodingOptions )
150
208
-> [ UInt8 ] where Buffer. Element == UInt8
151
209
{
@@ -212,7 +270,7 @@ extension Base64 {
212
270
return self . _encodeWithLineBreaks ( input: input, buffer: buffer, length: & length, options: options)
213
271
}
214
272
215
- let omitPaddingCharacter = false
273
+ let omitPaddingCharacter = options . contains ( . omitPaddingCharacter )
216
274
217
275
Self . withUnsafeEncodingTablesAsBufferPointers ( options: options) { ( e0, e1) throws ( Never) -> Void in
218
276
let to = input. count / 3 * 3
@@ -382,7 +440,16 @@ extension Base64 {
382
440
}
383
441
384
442
static func encodeComputeCapacity( bytes: Int , options: Data . Base64EncodingOptions ) -> Int {
385
- let capacityWithoutBreaks = ( ( bytes + 2 ) / 3 ) * 4
443
+ let capacityWithoutBreaks = if options. contains ( . omitPaddingCharacter) {
444
+ switch bytes % 3 {
445
+ case 0 : ( ( bytes + 2 ) / 3 ) * 4
446
+ case 1 : ( ( bytes + 2 ) / 3 ) * 4 - 2
447
+ case 2 : ( ( bytes + 2 ) / 3 ) * 4 - 1
448
+ default : fatalError ( )
449
+ }
450
+ } else {
451
+ ( ( bytes + 2 ) / 3 ) * 4
452
+ }
386
453
387
454
guard options. contains ( . lineLength64Characters) || options. contains ( . lineLength76Characters) else {
388
455
return capacityWithoutBreaks
@@ -400,8 +467,8 @@ extension Base64 {
400
467
}
401
468
402
469
static func withUnsafeEncodingTablesAsBufferPointers< R> ( options: Data . Base64EncodingOptions , _ body: ( UnsafeBufferPointer < UInt8 > , UnsafeBufferPointer < UInt8 > ) -> R ) -> R {
403
- let encoding0 = Self . encoding0
404
- let encoding1 = Self . encoding1
470
+ let encoding0 = options . contains ( . base64URLAlphabet ) ? Self . encoding0url : Self . encoding0
471
+ let encoding1 = options . contains ( . base64URLAlphabet ) ? Self . encoding1url : Self . encoding1
405
472
406
473
assert ( encoding0. count == 256 )
407
474
assert ( encoding1. count == 256 )
0 commit comments