Update capabilities to be expressible by Boolean literals (#16)

* Conform Server.Capabilities types to ExpressibleByBooleanLiteral

* Conform Client.Capabilities types to ExpressibleByBooleanLiteral

* Use Boolean literatls for capabilities in tests

* Update README
This commit is contained in:
Mattt 2025-03-17 04:35:03 -07:00 • committed by GitHub
commit 3e628db6d8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 46 additions and 8 deletions

View file

@ -51,11 +51,9 @@ let server = Server(
name: "MyServer",
version: "1.0.0",
capabilities: .init(
prompts: .init(),
resources: .init(
subscribe: true
),
tools: .init()
prompts: true,
resources: true,
tools: true
)
)

View file

@ -408,3 +408,17 @@ public actor Client {
return value
}
}
// MARK: - ExpressibleByBooleanLiteral
extension Client.Capabilities.Roots: ExpressibleByBooleanLiteral {
public init(booleanLiteral value: Bool) {
self.init()
}
}
extension Client.Capabilities.Sampling: ExpressibleByBooleanLiteral {
public init(booleanLiteral value: Bool) {
self.init()
}
}

View file

@ -408,3 +408,29 @@ public actor Server {
self.isInitialized = true
}
}
// MARK: - ExpressibleByBooleanLiteral
extension Server.Capabilities.Logging: ExpressibleByBooleanLiteral {
public init(booleanLiteral value: Bool) {
self.init()
}
}
extension Server.Capabilities.Prompts: ExpressibleByBooleanLiteral {
public init(booleanLiteral value: Bool) {
self.init()
}
}
extension Server.Capabilities.Resources: ExpressibleByBooleanLiteral {
public init(booleanLiteral value: Bool) {
self.init()
}
}
extension Server.Capabilities.Tools: ExpressibleByBooleanLiteral {
public init(booleanLiteral value: Bool) {
self.init()
}
}

View file

@ -34,9 +34,9 @@ struct RoundtripTests {
name: "TestServer",
version: "1.0.0",
capabilities: .init(
prompts: .init(),
resources: .init(),
tools: .init()
prompts: true,
resources: true,
tools: true
)
)
await server.withMethodHandler(ListTools.self) { _ in