Skip to main content

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 {}