From fff0c87a6d509abca5ddc51c3c20e8ec9edcbfd2 Mon Sep 17 00:00:00 2001 From: liberwang1013 Date: Sat, 20 Aug 2022 22:43:17 +0800 Subject: [PATCH] replaced usize with u64 in PaginatorTrait (#789) undefined --- examples/actix3_example/src/main.rs | 6 ++-- examples/actix_example/src/main.rs | 6 ++-- examples/axum_example/src/main.rs | 4 +-- examples/jsonrpsee_example/src/main.rs | 10 +++--- examples/poem_example/src/main.rs | 6 ++-- examples/rocket_example/src/main.rs | 6 ++-- src/executor/paginator.rs | 48 +++++++++++++------------- 7 files changed, 43 insertions(+), 43 deletions(-) diff --git a/examples/actix3_example/src/main.rs b/examples/actix3_example/src/main.rs index 1a6a7022..f6ac5d6b 100644 --- a/examples/actix3_example/src/main.rs +++ b/examples/actix3_example/src/main.rs @@ -13,7 +13,7 @@ use serde::{Deserialize, Serialize}; use std::env; use tera::Tera; -const DEFAULT_POSTS_PER_PAGE: usize = 5; +const DEFAULT_POSTS_PER_PAGE: u64 = 5; #[derive(Debug, Clone)] struct AppState { @@ -22,8 +22,8 @@ struct AppState { } #[derive(Debug, Deserialize)] pub struct Params { - page: Option, - posts_per_page: Option, + page: Option, + posts_per_page: Option, } #[derive(Deserialize, Serialize, Debug, Clone)] diff --git a/examples/actix_example/src/main.rs b/examples/actix_example/src/main.rs index a2da3727..fa55c507 100644 --- a/examples/actix_example/src/main.rs +++ b/examples/actix_example/src/main.rs @@ -13,7 +13,7 @@ use serde::{Deserialize, Serialize}; use std::env; use tera::Tera; -const DEFAULT_POSTS_PER_PAGE: usize = 5; +const DEFAULT_POSTS_PER_PAGE: u64 = 5; #[derive(Debug, Clone)] struct AppState { @@ -23,8 +23,8 @@ struct AppState { #[derive(Debug, Deserialize)] pub struct Params { - page: Option, - posts_per_page: Option, + page: Option, + posts_per_page: Option, } #[derive(Deserialize, Serialize, Debug, Clone)] diff --git a/examples/axum_example/src/main.rs b/examples/axum_example/src/main.rs index 37fc52c3..3669faca 100644 --- a/examples/axum_example/src/main.rs +++ b/examples/axum_example/src/main.rs @@ -72,8 +72,8 @@ async fn main() -> anyhow::Result<()> { #[derive(Deserialize)] struct Params { - page: Option, - posts_per_page: Option, + page: Option, + posts_per_page: Option, } #[derive(Deserialize, Serialize, Debug, Clone)] diff --git a/examples/jsonrpsee_example/src/main.rs b/examples/jsonrpsee_example/src/main.rs index a2cf18e3..e1d26f32 100644 --- a/examples/jsonrpsee_example/src/main.rs +++ b/examples/jsonrpsee_example/src/main.rs @@ -16,15 +16,15 @@ use std::net::SocketAddr; use tokio::signal::ctrl_c; use tokio::signal::unix::{signal, SignalKind}; -const DEFAULT_POSTS_PER_PAGE: usize = 5; +const DEFAULT_POSTS_PER_PAGE: u64 = 5; #[rpc(server, client)] pub trait PostRpc { #[method(name = "Post.List")] async fn list( &self, - page: Option, - posts_per_page: Option, + page: Option, + posts_per_page: Option, ) -> RpcResult>; #[method(name = "Post.Insert")] @@ -45,8 +45,8 @@ pub struct PpcImpl { impl PostRpcServer for PpcImpl { async fn list( &self, - page: Option, - posts_per_page: Option, + page: Option, + posts_per_page: Option, ) -> RpcResult> { let page = page.unwrap_or(1); let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE); diff --git a/examples/poem_example/src/main.rs b/examples/poem_example/src/main.rs index 75c5f776..14c7c3f4 100644 --- a/examples/poem_example/src/main.rs +++ b/examples/poem_example/src/main.rs @@ -12,7 +12,7 @@ use sea_orm::{entity::*, query::*, DatabaseConnection}; use serde::Deserialize; use tera::Tera; -const DEFAULT_POSTS_PER_PAGE: usize = 5; +const DEFAULT_POSTS_PER_PAGE: u64 = 5; #[derive(Debug, Clone)] struct AppState { @@ -22,8 +22,8 @@ struct AppState { #[derive(Deserialize)] struct Params { - page: Option, - posts_per_page: Option, + page: Option, + posts_per_page: Option, } #[handler] diff --git a/examples/rocket_example/src/main.rs b/examples/rocket_example/src/main.rs index fed44f96..4187f6a1 100644 --- a/examples/rocket_example/src/main.rs +++ b/examples/rocket_example/src/main.rs @@ -20,7 +20,7 @@ use pool::Db; pub use entity::post; pub use entity::post::Entity as Post; -const DEFAULT_POSTS_PER_PAGE: usize = 5; +const DEFAULT_POSTS_PER_PAGE: u64 = 5; #[get("/new")] async fn new() -> Template { @@ -80,8 +80,8 @@ async fn update( #[get("/?&")] async fn list( conn: Connection<'_, Db>, - page: Option, - posts_per_page: Option, + page: Option, + posts_per_page: Option, flash: Option>, ) -> Template { let db = conn.into_inner(); diff --git a/src/executor/paginator.rs b/src/executor/paginator.rs index a1a6f90d..a296efa5 100644 --- a/src/executor/paginator.rs +++ b/src/executor/paginator.rs @@ -18,8 +18,8 @@ where S: SelectorTrait + 'db, { pub(crate) query: SelectStatement, - pub(crate) page: usize, - pub(crate) page_size: usize, + pub(crate) page: u64, + pub(crate) page_size: u64, pub(crate) db: &'db C, pub(crate) selector: PhantomData, } @@ -28,9 +28,9 @@ where #[derive(Clone, Debug)] pub struct ItemsAndPagesNumber { /// The total number of items of a paginator - pub number_of_items: usize, + pub number_of_items: u64, /// The total number of pages of a paginator - pub number_of_pages: usize, + pub number_of_pages: u64, } // LINT: warn if paginator is used without an order by clause @@ -41,7 +41,7 @@ where S: SelectorTrait + 'db, { /// Fetch a specific page; page index starts from zero - pub async fn fetch_page(&self, page: usize) -> Result, DbErr> { + pub async fn fetch_page(&self, page: u64) -> Result, DbErr> { let query = self .query .clone() @@ -65,7 +65,7 @@ where } /// Get the total number of items - pub async fn num_items(&self) -> Result { + pub async fn num_items(&self) -> Result { let builder = self.db.get_database_backend(); let stmt = builder.build( SelectStatement::new() @@ -80,14 +80,14 @@ where None => return Ok(0), }; let num_items = match builder { - DbBackend::Postgres => result.try_get::("", "num_items")? as usize, - _ => result.try_get::("", "num_items")? as usize, + DbBackend::Postgres => result.try_get::("", "num_items")? as u64, + _ => result.try_get::("", "num_items")? as u64, }; Ok(num_items) } /// Get the total number of pages - pub async fn num_pages(&self) -> Result { + pub async fn num_pages(&self) -> Result { let num_items = self.num_items().await?; let num_pages = self.compute_pages_number(num_items); Ok(num_pages) @@ -105,8 +105,8 @@ where } /// Compute the number of pages for the current page - fn compute_pages_number(&self, num_items: usize) -> usize { - (num_items / self.page_size) + (num_items % self.page_size > 0) as usize + fn compute_pages_number(&self, num_items: u64) -> u64 { + (num_items / self.page_size) + (num_items % self.page_size > 0) as u64 } /// Increment the page counter @@ -115,7 +115,7 @@ where } /// Get current page number - pub fn cur_page(&self) -> usize { + pub fn cur_page(&self) -> u64 { self.page } @@ -215,10 +215,10 @@ where type Selector: SelectorTrait + Send + Sync + 'db; /// Paginate the result of a select operation. - fn paginate(self, db: &'db C, page_size: usize) -> Paginator<'db, C, Self::Selector>; + fn paginate(self, db: &'db C, page_size: u64) -> Paginator<'db, C, Self::Selector>; /// Perform a count on the paginated results - async fn count(self, db: &'db C) -> Result + async fn count(self, db: &'db C) -> Result where Self: Send + Sized, { @@ -233,7 +233,7 @@ where { type Selector = S; - fn paginate(self, db: &'db C, page_size: usize) -> Paginator<'db, C, S> { + fn paginate(self, db: &'db C, page_size: u64) -> Paginator<'db, C, S> { Paginator { query: self.query, page: 0, @@ -250,7 +250,7 @@ where S: SelectorTrait + Send + Sync + 'db, { type Selector = S; - fn paginate(self, db: &'db C, page_size: usize) -> Paginator<'db, C, S> { + fn paginate(self, db: &'db C, page_size: u64) -> Paginator<'db, C, S> { let sql = &self.stmt.sql[6..]; let mut query = SelectStatement::new(); query.expr(if let Some(values) = self.stmt.values { @@ -277,7 +277,7 @@ where { type Selector = SelectModel; - fn paginate(self, db: &'db C, page_size: usize) -> Paginator<'db, C, Self::Selector> { + fn paginate(self, db: &'db C, page_size: u64) -> Paginator<'db, C, Self::Selector> { self.into_model().paginate(db, page_size) } } @@ -292,7 +292,7 @@ where { type Selector = SelectTwoModel; - fn paginate(self, db: &'db C, page_size: usize) -> Paginator<'db, C, Self::Selector> { + fn paginate(self, db: &'db C, page_size: u64) -> Paginator<'db, C, Self::Selector> { self.into_model().paginate(db, page_size) } } @@ -492,9 +492,9 @@ mod tests { async fn num_pages() -> Result<(), DbErr> { let (db, num_items) = setup_num_items(); - let num_items = num_items as usize; - let page_size = 2_usize; - let num_pages = (num_items / page_size) + (num_items % page_size > 0) as usize; + let num_items = num_items as u64; + let page_size = 2_u64; + let num_pages = (num_items / page_size) + (num_items % page_size > 0) as u64; let paginator = fruit::Entity::find().paginate(&db, page_size); assert_eq!(paginator.num_pages().await?, num_pages); @@ -524,9 +524,9 @@ mod tests { async fn num_pages_raw() -> Result<(), DbErr> { let (db, num_items) = setup_num_items(); - let num_items = num_items as usize; - let page_size = 2_usize; - let num_pages = (num_items / page_size) + (num_items % page_size > 0) as usize; + let num_items = num_items as u64; + let page_size = 2_u64; + let num_pages = (num_items / page_size) + (num_items % page_size > 0) as u64; let paginator = fruit::Entity::find() .from_raw_sql(RAW_STMT.clone()) .paginate(&db, page_size);