diff --git a/Sources/OpenGraphShims/Graph+Debug.swift b/Sources/OpenGraphShims/Graph+Debug.swift new file mode 100644 index 00000000..dbb5a625 --- /dev/null +++ b/Sources/OpenGraphShims/Graph+Debug.swift @@ -0,0 +1,41 @@ +// +// Graph+Debug.swift +// OpenGraphShims + +// FIXME: Update name in OpenGraph +public typealias Graph = OGGraph +public typealias Subgraph = OGSubgraph + +#if canImport(Darwin) + +import Foundation + +@_spi(Debug) +extension Graph { + public var dict: [String: Any]? { + let options = ["format": "graph/dict"] as NSDictionary + guard let description = Graph.description(nil, options: options) else { + return nil + } + guard let dictionary = description.takeUnretainedValue() as? NSDictionary else { + return nil + } + return dictionary as? [String: Any] + } + + // style: + // - bold: empty input/output edge + // - dashed: indirect or has no value + // color: + // - red: is_changed + public var dot: String? { + let options = ["format": "graph/dot"] as NSDictionary + guard let description = Graph.description(self, options: options) + else { + return nil + } + return description.takeUnretainedValue() as? String + } +} + +#endif