quicburn-shared 0.1.0

A blazing fast QUIC implementation in Rust
// ============================================================
// Builder Macros (unchanged — these were fine)
// ============================================================

#[macro_export]
macro_rules! define_routes {
    (
        $(
            $(#[$attr:meta])*
            $name:literal => {
                category: $category:expr,
                priority: $priority:expr,
                auth: $auth:expr,
                description: $desc:expr,
                handler: $handler:expr
            }
        ),* $(,)?
    ) => {
        pub fn register_routes(
            routes: &mut quicburn_server::route_map::RouteTable,
            registry: &mut quicburn_shared::routes::RouteRegistry,
        ) {
            $(
                $(#[$attr])*
                registry.register(
                    $name,
                    $category,
                    $priority,
                    $auth,
                    Some($desc),
                );

                let route_id = quicburn_shared::routes::route_id($name);
                routes.insert(
                    route_id,
                    quicburn_server::route_map::RouteEntry {
                        route: route_id,
                        name: $name,
                        requires_auth: $auth,
                        handler: Box::new($handler),
                    },
                );
            )*
        }
    };
}

#[macro_export]
macro_rules! single_route {
    (
        $(#[$meta:meta])*
        $name:literal,
        category: $category:expr,
        priority: $priority:expr,
        auth: $auth:expr,
        description: $desc:expr,
        handler: $handler:expr
    ) => {
        pub fn register_route(
            routes: &mut quicburn_server::route_map::RouteTable,
            registry: &mut quicburn_shared::routes::RouteRegistry,
        ) {
            $(#[$meta])*
            registry.register(
                $name,
                $category,
                $priority,
                $auth,
                Some($desc),
            );

            let route_id = quicburn_shared::routes::route_id($name);
            routes.insert(
                route_id,
                quicburn_server::route_map::RouteEntry {
                    route: route_id,
                    name: $name,
                    requires_auth: $auth,
                    handler: Box::new($handler),
                },
            );
        }
    };
}

#[macro_export]
macro_rules! public_route_def {
    (
        $name:literal,
        category: $category:expr,
        priority: $priority:expr,
        description: $desc:expr,
        handler: $handler:expr
    ) => {
        $crate::single_route! {
            $name,
            category: $category,
            priority: $priority,
            auth: false,
            description: $desc,
            handler: $handler
        }
    };
}

#[macro_export]
macro_rules! protected_route_def {
    (
        $name:literal,
        category: $category:expr,
        priority: $priority:expr,
        description: $desc:expr,
        handler: $handler:expr
    ) => {
        $crate::single_route! {
            $name,
            category: $category,
            priority: $priority,
            auth: true,
            description: $desc,
            handler: $handler
        }
    };
}