use crate::context::BridgeContext; use crate::types::{BridgeError, BridgeResult}; use core_protocol::{CommandEnvelope, QueryEnvelope}; pub fn validate_command_envelope( context: &BridgeContext, command: &CommandEnvelope, ) -> BridgeResult<()> { if command.name.trim().is_empty() { return Err(BridgeError::validation("command name 不能为空")); } if command.command_id.trim().is_empty() { return Err(BridgeError::validation("command_id 不能为空")); } if context.request_id.trim().is_empty() { return Err(BridgeError::validation("request_id 不能为空")); } if context.trace_id.trim().is_empty() { return Err(BridgeError::validation("trace_id 不能为空")); } if context.actor_id.trim().is_empty() { return Err(BridgeError::validation("actor_id 不能为空")); } Ok(()) } pub fn validate_query_envelope( context: &BridgeContext, query: &QueryEnvelope, ) -> BridgeResult<()> { if query.name.trim().is_empty() { return Err(BridgeError::validation("query name 不能为空")); } if context.request_id.trim().is_empty() { return Err(BridgeError::validation("request_id 不能为空")); } if context.trace_id.trim().is_empty() { return Err(BridgeError::validation("trace_id 不能为空")); } Ok(()) }