功能
@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
参数。 第二个也是最后一个参数是函数调用完成时要调用的完成处理程序。 此处理程序在非主全局DispatchQueue
上执行。
-
用于接收远程函数调用完成情况的闭包类型。
声明
Swift
public typealias FunctionCompletionHandler = @Sendable (AnyBSON?, Error?) -> Void
-
动态远程函数类型的闭包类型。
声明
Swift
public typealias Function = @Sendable ([AnyBSON], @escaping FunctionCompletionHandler) -> Void
-
允许动态远程函数调用的 @DynamicMemberLookup 的实现。
声明
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
补全进行动态远程函数调用的 @DynamicMemberLookup 实现。声明
Swift
@preconcurrency public subscript(dynamicMember string: String) -> ResultFunction { get }
-
支持动态远程函数调用并返回
callable
的 @DynamicMemberLookup 的实现。声明
Swift
public subscript(dynamicMember string: String) -> FunctionCallable { get }