63 lines
1.4 KiB
Rust
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,
|
|
}
|
|
}
|
|
}
|