@propertyWrapper struct PrivateSubject<T, E: Swift.Error> { var wrappedValue: AnyPublisher<T, E> { projectedValue.eraseToAnyPublisher() } let projectedValue = PassthroughSubject<T, E>() } final class Foo: ObservableObject { @PrivateSubject var flashScreen: AnyPublisher<Void, Never> func foo() { $flashScreen.send() } }
こういう感じのを考えてましたFoo
を直接しってる人からは触れてしまうか・・var flashScreen: AnyPublisher<...> {get}
の粒度までしか知らない人に対しては隠蔽できます