Skip to main content

Crate cufflink

Crate cufflink 

Source
Expand description

Cufflink SDK — Build CRUD microservices in a few lines of code.

§Example

use cufflink::prelude::*;

#[derive(Table, Serialize, Deserialize, Clone)]
#[table(name = "todos", auth_required, permission_area = "todos")]
pub struct Todo {
    #[key] pub id: Uuid,
    pub title: String,
    pub completed: bool,
    #[timestamp] pub created_at: DateTime<Utc>,
    #[timestamp] pub updated_at: DateTime<Utc>,
}

cufflink::service! {
    name: "todo-service",
    tables: [Todo],
    authorization: [
        areas: [("todos", ["create", "view", "edit", "delete"])],
        default_roles: [
            ("admin", "Full access", ["todos:*"]),
            ("viewer", "Read-only", ["todos:view"]),
        ],
    ],
}

Modules§

manifest
Re-export manifest types so proc macro generated code can reference them
prelude
Prelude — import this in your service for all common types and derive macros

Macros§

service
Re-export the service! macro at crate root Service definition macro — generates a main() function with manifest emission support.