paperless_api/dto.rs
1//! DTO traits and helpers.
2
3use serde::Serialize;
4
5use crate::id::PaperlessId;
6
7pub trait CreateDtoObject: Serialize {}
8
9pub trait Item {
10 type Id: PaperlessId;
11 type BaseType: serde::de::DeserializeOwned;
12 type CreateDto: CreateDtoObject;
13 type UpdateDto: UpdateDtoObject;
14
15 fn endpoint() -> &'static str;
16
17 fn id(&self) -> Self::Id;
18}
19
20/// Marker trait for update DTOs.
21pub trait UpdateDtoObject: Serialize {}