Skip to content

Commit 9bccb63

Browse files
committed
fix protocol warnings
1 parent 885299f commit 9bccb63

File tree

2 files changed

+43
-39
lines changed

2 files changed

+43
-39
lines changed

Sources/StructuredFieldValues/Decoder/BareItemDecoder.swift

+26-24
Original file line numberDiff line numberDiff line change
@@ -97,30 +97,6 @@ extension BareItemDecoder: SingleValueDecodingContainer {
9797
return bool
9898
}
9999

100-
func decode(_: Data.Type) throws -> Data {
101-
guard case .undecodedByteSequence(let data) = self.item else {
102-
throw StructuredHeaderError.invalidTypeForItem
103-
}
104-
105-
guard let decoded = Data(base64Encoded: data) else {
106-
throw StructuredHeaderError.invalidByteSequence
107-
}
108-
109-
return decoded
110-
}
111-
112-
func decode(_: Decimal.Type) throws -> Decimal {
113-
guard case .decimal(let pseudoDecimal) = self.item else {
114-
throw StructuredHeaderError.invalidTypeForItem
115-
}
116-
117-
return Decimal(
118-
sign: pseudoDecimal.mantissa > 0 ? .plus : .minus,
119-
exponent: Int(pseudoDecimal.exponent),
120-
significand: Decimal(pseudoDecimal.mantissa.magnitude)
121-
)
122-
}
123-
124100
func decodeNil() -> Bool {
125101
// Items are never nil.
126102
false
@@ -186,3 +162,29 @@ extension BareItemDecoder: SingleValueDecodingContainer {
186162
return result
187163
}
188164
}
165+
166+
extension BareItemDecoder {
167+
func decode(_: Data.Type) throws -> Data {
168+
guard case .undecodedByteSequence(let data) = self.item else {
169+
throw StructuredHeaderError.invalidTypeForItem
170+
}
171+
172+
guard let decoded = Data(base64Encoded: data) else {
173+
throw StructuredHeaderError.invalidByteSequence
174+
}
175+
176+
return decoded
177+
}
178+
179+
func decode(_: Decimal.Type) throws -> Decimal {
180+
guard case .decimal(let pseudoDecimal) = self.item else {
181+
throw StructuredHeaderError.invalidTypeForItem
182+
}
183+
184+
return Decimal(
185+
sign: pseudoDecimal.mantissa > 0 ? .plus : .minus,
186+
exponent: Int(pseudoDecimal.exponent),
187+
significand: Decimal(pseudoDecimal.mantissa.magnitude)
188+
)
189+
}
190+
}

Sources/StructuredFieldValues/Encoder/StructuredFieldValueEncoder.swift

+17-15
Original file line numberDiff line numberDiff line change
@@ -280,21 +280,6 @@ extension _StructuredFieldEncoder: SingleValueEncodingContainer {
280280
try self._encodeFixedWidthInteger(value)
281281
}
282282

283-
func encode(_ data: Data) throws {
284-
let encoded = data.base64EncodedString()
285-
try self.currentStackEntry.storage.insertBareItem(.undecodedByteSequence(encoded))
286-
}
287-
288-
func encode(_ data: Decimal) throws {
289-
let significand = (data.significand.magnitude as NSNumber).intValue // Yes, really.
290-
guard let exponent = Int8(exactly: data.exponent) else {
291-
throw StructuredHeaderError.invalidIntegerOrDecimal
292-
}
293-
294-
let pd = PseudoDecimal(mantissa: significand * (data.isSignMinus ? -1 : 1), exponent: Int(exponent))
295-
try self.currentStackEntry.storage.insertBareItem(.decimal(pd))
296-
}
297-
298283
func encode<T>(_ value: T) throws where T: Encodable {
299284
switch value {
300285
case let value as UInt8:
@@ -348,6 +333,23 @@ extension _StructuredFieldEncoder: SingleValueEncodingContainer {
348333
}
349334
}
350335

336+
extension _StructuredFieldEncoder {
337+
func encode(_ data: Data) throws {
338+
let encoded = data.base64EncodedString()
339+
try self.currentStackEntry.storage.insertBareItem(.undecodedByteSequence(encoded))
340+
}
341+
342+
func encode(_ data: Decimal) throws {
343+
let significand = (data.significand.magnitude as NSNumber).intValue // Yes, really.
344+
guard let exponent = Int8(exactly: data.exponent) else {
345+
throw StructuredHeaderError.invalidIntegerOrDecimal
346+
}
347+
348+
let pd = PseudoDecimal(mantissa: significand * (data.isSignMinus ? -1 : 1), exponent: Int(exponent))
349+
try self.currentStackEntry.storage.insertBareItem(.decimal(pd))
350+
}
351+
}
352+
351353
extension _StructuredFieldEncoder {
352354
// This extension sort-of corresponds to the unkeyed encoding container: all of
353355
// these methods are called from there.

0 commit comments

Comments
 (0)