TeraAuthorVisibility.swift (1448B)
1 import Foundation 2 3 enum TeraAuthorVisibility: String, Sendable, Equatable { 4 case visible, muted, blocked 5 } 6 7 struct TeraAuthorVisibilityEntry: Sendable, Equatable, Identifiable, CustomDebugStringConvertible { 8 let author: String 9 let visibility: TeraAuthorVisibility 10 var debugDescription: String { 11 "AuthorVisibilityEntry" 12 } 13 14 var id: String { 15 author 16 } 17 } 18 19 struct TeraAuthorVisibilityPolicy: Sendable, Equatable, CustomDebugStringConvertible { 20 let revision: UInt64 21 let entries: [TeraAuthorVisibilityEntry] 22 var debugDescription: String { 23 "AuthorVisibilityPolicy(revision: \(revision), entries: \(entries.count))" 24 } 25 } 26 27 extension TeraRuntimeBackend { 28 func authorVisibility() async throws -> TeraAuthorVisibilityPolicy { 29 throw TeraComposerAcknowledgment.unconfirmed 30 } 31 32 func setAuthorVisibility(author _: String, visibility _: TeraAuthorVisibility) async throws -> TeraAuthorVisibilityPolicy { 33 throw TeraComposerAcknowledgment.unconfirmed 34 } 35 } 36 37 extension TeraRuntimeClient { 38 func authorVisibility() async throws -> TeraAuthorVisibilityPolicy { 39 try await supportOperation("runtime.visibility.read") { try await $0.authorVisibility() } 40 } 41 42 func setAuthorVisibility(author: String, visibility: TeraAuthorVisibility) async throws -> TeraAuthorVisibilityPolicy { 43 try await supportOperation("runtime.visibility.change") { try await $0.setAuthorVisibility(author: author, visibility: visibility) } 44 } 45 }