関数
@dynamicMemberLookup
@frozen
public struct Functions : Sendable
指定された名前と引数を持つ Atlas App Services 関数を呼び出すためのインターフェースを提供する構造体。
user.functions.sum([1, 2, 3, 4, 5]) { sum, error in
guard case let .int64(value) = sum else {
print(error?.localizedDescription)
}
assert(value == 15)
}
動的ノード名(上記の例ではsum
)は、関数名に直接関連付けられています。 最初の引数は、関数に提供する引数のBSONArray
です。 2 番目の最後の引数は、関数呼び出しが完了したときに呼び出される完了ハンドラーです。 このハンドラーは非メインのグローバルDispatchQueue
で実行されます。
-
リモート関数呼び出しの完了を受け取るための包含の型。
宣言
Swift
public typealias FunctionCompletionHandler = @Sendable (AnyBSON?, Error?) -> Void
-
動的リモート関数の種類の選択。
宣言
Swift
public typealias Function = @Sendable ([AnyBSON], @escaping FunctionCompletionHandler) -> Void
-
動的なリモート関数呼び出しを可能にする @dysyncMeberLookup の実装。
宣言
Swift
public subscript(dynamicMember string: String) -> Function { get }
-
リモート関数呼び出しの完了結果を受け取るための包含の型。
宣言
Swift
public typealias ResultFunctionCompletionHandler = @Sendable (Result<AnyBSON, Error>) -> Void
-
動的リモート関数の種類の選択。
宣言
Swift
public typealias ResultFunction = @Sendable ([AnyBSON], @escaping ResultFunctionCompletionHandler) -> Void
-
ResultFunctionCompletionHandler
の サンプル データセット宣言
Swift
@preconcurrency public subscript(dynamicMember string: String) -> ResultFunction { get }
-
callable
戻り値で動的なリモート関数呼び出しを可能にする @dysyncMeberLookup の実装。宣言
Swift
public subscript(dynamicMember string: String) -> FunctionCallable { get }