~ knotless Search/
↑↓ move↵ open⇧↵ all results

grain.social/grain-ios

1 collaborator
0
1
main
47 lines · 980 B Raw History
import Foundation

/// AT Protocol blob reference returned from uploadBlob
struct BlobRef: Codable, Sendable {
    let type: String?
    let ref: BlobLink?
    let mimeType: String?
    let size: Int?

    enum CodingKeys: String, CodingKey {
        case type = "$type"
        case ref
        case mimeType
        case size
    }

    struct BlobLink: Codable, Sendable {
        let link: String

        enum CodingKeys: String, CodingKey {
            case link = "$link"
        }
    }
}

/// Label definition (com.atproto.label.defs#label)
struct ATLabel: Codable, Sendable {
    let src: String?
    let uri: String?
    let val: String?
    let cts: String?
}

/// Self-label values (com.atproto.label.defs#selfLabels)
struct SelfLabels: Codable, Sendable {
    let type: String?
    let values: [SelfLabel]?

    enum CodingKeys: String, CodingKey {
        case type = "$type"
        case values
    }
}

struct SelfLabel: Codable, Sendable {
    let val: String
}