53 lines
1.4 KiB
Swift
53 lines
1.4 KiB
Swift
import Foundation
|
|
|
|
public struct ClawdisCanvasNavigateParams: Codable, Sendable, Equatable {
|
|
public var url: String
|
|
|
|
public init(url: String) {
|
|
self.url = url
|
|
}
|
|
}
|
|
|
|
public struct ClawdisCanvasEvalParams: Codable, Sendable, Equatable {
|
|
public var javaScript: String
|
|
|
|
public init(javaScript: String) {
|
|
self.javaScript = javaScript
|
|
}
|
|
}
|
|
|
|
public enum ClawdisCanvasSnapshotFormat: String, Codable, Sendable {
|
|
case png
|
|
case jpeg
|
|
|
|
public init(from decoder: Decoder) throws {
|
|
let c = try decoder.singleValueContainer()
|
|
let raw = try c.decode(String.self).trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
|
|
switch raw {
|
|
case "png":
|
|
self = .png
|
|
case "jpeg", "jpg":
|
|
self = .jpeg
|
|
default:
|
|
throw DecodingError.dataCorruptedError(in: c, debugDescription: "Invalid snapshot format: \(raw)")
|
|
}
|
|
}
|
|
|
|
public func encode(to encoder: Encoder) throws {
|
|
var c = encoder.singleValueContainer()
|
|
try c.encode(self.rawValue)
|
|
}
|
|
}
|
|
|
|
public struct ClawdisCanvasSnapshotParams: Codable, Sendable, Equatable {
|
|
public var maxWidth: Int?
|
|
public var quality: Double?
|
|
public var format: ClawdisCanvasSnapshotFormat?
|
|
|
|
public init(maxWidth: Int? = nil, quality: Double? = nil, format: ClawdisCanvasSnapshotFormat? = nil) {
|
|
self.maxWidth = maxWidth
|
|
self.quality = quality
|
|
self.format = format
|
|
}
|
|
}
|