 }
 
 extension ObjectEncoder {
-    class Encoder: Swift.Encoder {
-        fileprivate var object: Any = [:]
+    public class Encoder: Swift.Encoder {
+        public final var object: Any = [:]
 
         fileprivate typealias Options = ObjectEncoder.Options
         fileprivate let options: Options

            self.codingPath = codingPath
        }

        // MARK: - Swift.Encoder Methods

        let codingPath: [CodingKey]
        let userInfo: [CodingUserInfoKey: Any]
    }
}

extension ObjectEncoder.Encoder {
    func container<Key>(keyedBy type: Key.Type) -> KeyedEncodingContainer<Key> {
        if canEncodeNewValue {
            object = [:]
        } else {

        return _UnkeyedEncodingContainer(referencing: self)
    }

    public final func singleValueContainer() -> SingleValueEncodingContainer { return self }

    // MARK: -

