little-hesinde/cops-web/src/data/book.rs

30 lines
717 B
Rust
Raw Normal View History

2024-05-06 07:09:40 +00:00
use calibre_db::data::{book::Book as DbBook, series::Series as DbSeries};
use serde::Serialize;
#[derive(Debug, Serialize)]
pub struct Book {
pub id: u64,
pub title: String,
pub sort: String,
pub path: String,
pub author: String,
pub series: Option<(String, f64)>,
}
impl Book {
pub fn from_db_book(
db_book: &DbBook,
db_series: Option<(DbSeries, f64)>,
author: &str,
) -> Self {
Self {
id: db_book.id,
title: db_book.title.clone(),
sort: db_book.sort.clone(),
path: db_book.path.clone(),
author: author.to_string(),
series: db_series.map(|x| (x.0.name, x.1)),
}
}
}