File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -1767,6 +1767,41 @@ extension Array : Decodable where Element : Decodable {
1767
1767
}
1768
1768
}
1769
1769
1770
+ extension ContiguousArray : Encodable where Element : Encodable {
1771
+ /// Encodes the elements of this contiguous array into the given encoder
1772
+ /// in an unkeyed container.
1773
+ ///
1774
+ /// This function throws an error if any values are invalid for the given
1775
+ /// encoder's format.
1776
+ ///
1777
+ /// - Parameter encoder: The encoder to write data to.
1778
+ @inlinable // FIXME(sil-serialize-all)
1779
+ public func encode(to encoder: Encoder) throws {
1780
+ var container = encoder.unkeyedContainer()
1781
+ for element in self {
1782
+ try container.encode(element)
1783
+ }
1784
+ }
1785
+ }
1786
+
1787
+ extension ContiguousArray : Decodable where Element : Decodable {
1788
+ /// Creates a new contiguous array by decoding from the given decoder.
1789
+ ///
1790
+ /// This initializer throws an error if reading from the decoder fails, or
1791
+ /// if the data read is corrupted or otherwise invalid.
1792
+ ///
1793
+ /// - Parameter decoder: The decoder to read data from.
1794
+ @inlinable // FIXME(sil-serialize-all)
1795
+ public init(from decoder: Decoder) throws {
1796
+ self.init()
1797
+ var container = try decoder.unkeyedContainer()
1798
+ while !container.isAtEnd {
1799
+ let element = try container.decode(Element.self)
1800
+ self.append(element)
1801
+ }
1802
+ }
1803
+ }
1804
+
1770
1805
extension Set : Encodable where Element : Encodable {
1771
1806
/// Encodes the elements of this set into the given encoder in an unkeyed
1772
1807
/// container.
You can’t perform that action at this time.
0 commit comments