2022-08-27 06:03:12 +00:00

63 lines
1.4 KiB
Rust

//!
//!
use beteran_protobuf_rust as bpr;
///
#[derive(Debug, Clone)]
pub enum Sort {
///
ASC(String),
///
DESC(String),
}
impl From<&Sort> for bpr::protobuf::pagination::Sort {
fn from(d: &Sort) -> Self {
match d {
Sort::ASC(by) => bpr::protobuf::pagination::Sort {
by: by.to_string(),
order: bpr::protobuf::pagination::SortOrder::Asc as i32,
},
Sort::DESC(by) => bpr::protobuf::pagination::Sort {
by: by.to_string(),
order: bpr::protobuf::pagination::SortOrder::Desc as i32,
},
}
}
}
impl From<&bpr::protobuf::pagination::Sort> for Sort {
fn from(d: &bpr::protobuf::pagination::Sort) -> Self {
match d.order {
x if x == bpr::protobuf::pagination::SortOrder::Desc as i32 => Sort::DESC(d.by.to_string()),
_ => Sort::ASC(d.by.to_string()),
}
}
}
///
#[derive(Debug, Clone)]
pub struct Pagination {
///
pub page: Option<u32>,
///
pub page_size: Option<u32>,
}
impl From<&Pagination> for bpr::protobuf::pagination::Pagination {
fn from(d: &Pagination) -> Self {
bpr::protobuf::pagination::Pagination {
page: d.page,
page_size: d.page_size,
}
}
}
impl From<&bpr::protobuf::pagination::Pagination> for Pagination {
fn from(d: &bpr::protobuf::pagination::Pagination) -> Self {
Pagination {
page: d.page,
page_size: d.page_size,
}
}
}