30 lines
717 B
Rust
30 lines
717 B
Rust
|
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)),
|
||
|
}
|
||
|
}
|
||
|
}
|