diff --git a/Sources/StructuredData.swift b/Sources/StructuredData.swift index 6677361..1420591 100644 --- a/Sources/StructuredData.swift +++ b/Sources/StructuredData.swift @@ -2,10 +2,20 @@ public protocol StructuredDataInitializable { init(structuredData: StructuredData) throws } -public protocol StructuredDataRepresentable { +public protocol StructuredDataRepresentable: StructuredDataFallibleRepresentable { var structuredData: StructuredData { get } } +public protocol StructuredDataFallibleRepresentable { + func asStructuredData() throws -> StructuredData +} + +extension StructuredDataRepresentable { + public func asStructuredData() throws -> StructuredData { + return structuredData + } +} + public protocol StructuredDataConvertible: StructuredDataInitializable, StructuredDataRepresentable {} public enum StructuredData {