Skip to main content

validate_id

Function validate_id 

Source
pub fn validate_id(id: &str, policy: IDPolicy) -> Result<(), IDValidationError>
Expand description

Validate an ID string against the configured ID policy

§Arguments

  • id - The ID value to validate
  • policy - The ID policy to enforce

§Returns

Ok(()) if the ID is valid for the policy, Err(IDValidationError) otherwise

§Errors

Returns IDValidationError if the ID does not conform to the specified policy. For IDPolicy::UUID, the ID must be a valid UUID. For IDPolicy::OPAQUE, any string is valid.

§Examples

use fraiseql_core::validation::{IDPolicy, validate_id};

// UUID policy enforces UUID format
assert!(
    validate_id("550e8400-e29b-41d4-a716-446655440000", IDPolicy::UUID).is_ok(),
    "valid UUID should pass UUID policy"
);
assert!(
    validate_id("not-uuid", IDPolicy::UUID).is_err(),
    "non-UUID string should fail UUID policy"
);

// OPAQUE policy accepts any string
assert!(
    validate_id("anything", IDPolicy::OPAQUE).is_ok(),
    "OPAQUE policy should accept any string"
);
assert!(
    validate_id("", IDPolicy::OPAQUE).is_ok(),
    "OPAQUE policy should accept empty string"
);

§Errors

Returns IDValidationError if id does not conform to policy (e.g., not a valid UUID when IDPolicy::UUID is used).