systemprompt_identifiers/service.rs
1//! Name of a platform-managed service — the `services.name` key shared by
2//! MCP servers and agents, taken from the `services.yaml` key that declared
3//! it.
4//!
5//! Copyright (c) systemprompt.io — Business Source License 1.1.
6//! See <https://systemprompt.io> for licensing details.
7
8crate::define_id!(ServiceName, checked, |value| {
9 crate::macros::validate_non_empty("ServiceName", value)
10});
11
12impl ServiceName {
13 pub fn of_agent(agent: &crate::AgentName) -> Self {
14 Self(agent.as_str().to_owned())
15 }
16
17 pub fn of_mcp_server(server: &crate::McpServerId) -> Self {
18 Self(server.as_str().to_owned())
19 }
20}