aerospace fork
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879import Foundation
public let SOCKET_PROTOCOL_VERSION: UInt32 = 1
public struct ServerAnswer: Codable, Sendable { public let exitCode: Int32 public let stdout: String public var stderr: String public let serverVersionAndHash: String
public init( exitCode: Int32, stdout: String = "", stderr: String = "", serverVersionAndHash: String, ) { self.exitCode = exitCode self.stdout = stdout self.stderr = stderr self.serverVersionAndHash = serverVersionAndHash }}
public struct ClientRequest: Codable, Sendable, ConvenienceMutable, Equatable { // periphery:ignore - Unused. keep it for API compatibility with old servers for a couple of version public var command: String? = nil
public let args: [String] public let stdin: String
// Double Optional to encode explicit null into JSON public var windowId: UInt32?? // Please forward DEEWM_WINDOW_ID env variable here public var workspace: String?? // Please forward DEEWM_WORKSPACE env variable here
public init( args: [String], stdin: String, windowId: UInt32?, workspace: String?, ) { self.args = args self.stdin = stdin self.windowId = .some(windowId) self.workspace = .some(workspace) }
public static func decodeJson(_ data: Data) -> Result<ClientRequest, String> { Result { try JSONDecoder().decode(Self.self, from: data) }.mapError { $0.localizedDescription } }
enum CodingKeys: String, CodingKey { case args case stdin case windowId case workspace }
public init(from decoder: any Decoder) throws { let data = try ClientRequestData.init(from: decoder) var raw = ClientRequest( args: data.args, stdin: data.stdin, windowId: data.windowId.flattenOptional(), workspace: data.workspace.flattenOptional(), ) let container = try decoder.container(keyedBy: CodingKeys.self) if !container.contains(.windowId) { raw.windowId = nil } if !container.contains(.workspace) { raw.workspace = nil } self = raw }}
private struct ClientRequestData: Codable, Sendable { var args: [String] var stdin: String var windowId: UInt32?? var workspace: String??}