systemprompt_cli/shared/
parsers.rs1use systemprompt_identifiers::error::IdValidationError;
11use systemprompt_identifiers::{
12 AgentName, AiRequestId, ApiKeyId, CampaignId, CategoryId, Email, ExtensionId, JobName,
13 LinkClickId, LinkId, McpServerId, McpToolName, ModelId, PluginId, ProfileName, ProviderId,
14 SecretName, ServiceName, SkillId, TenantId, TraceId,
15};
16
17macro_rules! id_parsers {
18 ($($fn_name:ident => $ty:ident),* $(,)?) => {
19 $(
20 pub fn $fn_name(s: &str) -> Result<$ty, IdValidationError> {
21 $ty::try_new(s)
22 }
23 )*
24 };
25}
26
27id_parsers! {
28 parse_profile_name => ProfileName,
29 parse_email => Email,
30 parse_extension_id => ExtensionId,
31 parse_agent_name => AgentName,
32 parse_ai_request_id => AiRequestId,
33 parse_api_key_id => ApiKeyId,
34 parse_campaign_id => CampaignId,
35 parse_category_id => CategoryId,
36 parse_job_name => JobName,
37 parse_link_click_id => LinkClickId,
38 parse_link_id => LinkId,
39 parse_mcp_server_id => McpServerId,
40 parse_mcp_tool_name => McpToolName,
41 parse_plugin_id => PluginId,
42 parse_service_name => ServiceName,
43 parse_tenant_id => TenantId,
44 parse_trace_id => TraceId,
45 parse_provider_id => ProviderId,
46 parse_model_id => ModelId,
47 parse_secret_name => SecretName,
48 parse_skill_id => SkillId,
49}
50
51pub fn parse_profile_name_arg(s: &str) -> Result<String, IdValidationError> {
56 ProfileName::try_new(s).map(|name| name.as_str().to_owned())
57}