mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The proposal was [accepted with modifications](https://forums.swift.org/t/accepted-with-modifications-se-0428-resolve-distributedactor-protocols/71366) The decision was made to change the spelling of the attached macro in the proposal from @DistributedProtocol to `@Resolvable` (or `@Distributed.Resolvable` if disambiguation is needed).
35 lines
1.4 KiB
Swift
35 lines
1.4 KiB
Swift
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2020-2024 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See https://swift.org/LICENSE.txt for license information
|
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
// Macros supporting distributed actor features.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
import Swift
|
|
import _Concurrency
|
|
|
|
// Macros are disabled when Swift is built without swift-syntax.
|
|
#if $Macros && hasAttribute(attached)
|
|
|
|
/// Enables the attached to protocol to be resolved as remote distributed
|
|
/// actor reference.
|
|
///
|
|
/// ### Requirements
|
|
///
|
|
/// The attached to type must be a protocol that refines the `DistributedActor`
|
|
/// protocol. It must either specify a concrete `ActorSystem` or constrain it
|
|
/// in such way that the system's `SerializationRequirement` is statically known.
|
|
@attached(peer, names: prefixed(`$`)) // provides $Greeter concrete stub type
|
|
@attached(extension, names: arbitrary) // provides extension for Greeter & _DistributedActorStub
|
|
public macro Resolvable() =
|
|
#externalMacro(module: "SwiftMacros", type: "DistributedResolvableMacro")
|
|
|
|
#endif
|