Some checks are pending
Build AppImage / Build AppImage (push) Waiting to run
Build Apple Apps / Build App (iOS) (push) Waiting to run
Build Apple Apps / Build App (iOS Simulator) (push) Waiting to run
Build Apple Apps / Build App (macOS) (push) Waiting to run
Build Docker / Build Docker Image (push) Waiting to run
Build Rust Crate / Build Crate (macOS (Intel)) (push) Waiting to run
Build Rust Crate / Build Crate (macOS) (push) Waiting to run
Build Rust Crate / Build Crate (Linux) (push) Waiting to run
Build Rust Crate / Build Crate (Windows) (push) Waiting to run
32 lines
932 B
Swift
32 lines
932 B
Swift
import GRPC
|
|
import NIOTransportServices
|
|
|
|
public typealias TunnelClient = Burrow_TunnelAsyncClient
|
|
public typealias NetworksClient = Burrow_NetworksAsyncClient
|
|
|
|
public protocol Client {
|
|
init(channel: GRPCChannel)
|
|
}
|
|
|
|
extension Client {
|
|
public static func unix(socketURL: URL) -> Self {
|
|
let group = NIOTSEventLoopGroup()
|
|
let configuration = ClientConnection.Configuration.default(
|
|
target: .unixDomainSocket(socketURL.path),
|
|
eventLoopGroup: group
|
|
)
|
|
return Self(channel: ClientConnection(configuration: configuration))
|
|
}
|
|
}
|
|
|
|
extension TunnelClient: Client {
|
|
public init(channel: any GRPCChannel) {
|
|
self.init(channel: channel, defaultCallOptions: .init(), interceptors: .none)
|
|
}
|
|
}
|
|
|
|
extension NetworksClient: Client {
|
|
public init(channel: any GRPCChannel) {
|
|
self.init(channel: channel, defaultCallOptions: .init(), interceptors: .none)
|
|
}
|
|
}
|