scim_server/resource/
handlers.rs

1//! Handler infrastructure for dynamic resource operations.
2//!
3//! This module provides the infrastructure for creating and managing
4//! dynamic resource handlers that can be configured at runtime with
5//! custom attribute handlers, mappers, and methods.
6
7use crate::schema::Schema;
8
9/// Handler for a specific resource type containing its schema
10#[derive(Clone)]
11pub struct ResourceHandler {
12    pub schema: Schema,
13}
14
15impl std::fmt::Debug for ResourceHandler {
16    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
17        f.debug_struct("ResourceHandler")
18            .field("schema", &self.schema)
19            .finish()
20    }
21}
22
23/// Builder for creating resource handlers
24pub struct SchemaResourceBuilder {
25    schema: Schema,
26}
27
28impl SchemaResourceBuilder {
29    pub fn new(schema: Schema) -> Self {
30        Self { schema }
31    }
32
33    pub fn build(self) -> ResourceHandler {
34        ResourceHandler {
35            schema: self.schema,
36        }
37    }
38}