summaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
authorWriterV2 <primary-v2@protonmail.com>2024-11-24 12:17:32 +0100
committerWriterV2 <primary-v2@protonmail.com>2024-11-24 12:17:32 +0100
commit364763e039b286774c29c4995df6baba9d22a61a (patch)
tree479549136d47ae4ed0e5ceb6acffaf94a110bc47 /src/db
parent680867b4bb5e2708f02fc3f8c21c3563975c44c7 (diff)
Perf: Avoid unnecessary heap allocations of strings
Diffstat (limited to 'src/db')
-rw-r--r--src/db/mod.rs6
-rw-r--r--src/db/product.rs2
-rw-r--r--src/db/story.rs14
3 files changed, 11 insertions, 11 deletions
diff --git a/src/db/mod.rs b/src/db/mod.rs
index 51665a3..f1baf44 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -19,9 +19,9 @@ pub trait ProductDatabaseHandler {
async fn post(
&self,
pool: &SqlitePool,
- name: String,
- description: String,
- tags: Vec<String>,
+ name: &str,
+ description: &str,
+ tags: Vec<&str>,
) -> Result<Self, AppError>
where
Self: Sized;
diff --git a/src/db/product.rs b/src/db/product.rs
index c21734e..1c8be1f 100644
--- a/src/db/product.rs
+++ b/src/db/product.rs
@@ -18,7 +18,7 @@ pub struct Product {
}
impl Product {
- pub async fn post(tx: &mut Transaction<'static, Sqlite>, name: String, description: String, tags: Vec<String>) -> Result<Product, AppError> {
+ pub async fn post(tx: &mut Transaction<'static, Sqlite>, name: &str, description: &str, tags: Vec<&str>) -> Result<Product, AppError> {
let now = SystemTime::now().duration_since(std::time::UNIX_EPOCH)?.as_millis() as i64;
let product = sqlx::query_as!(
Product,
diff --git a/src/db/story.rs b/src/db/story.rs
index 9e5fdb9..5803351 100644
--- a/src/db/story.rs
+++ b/src/db/story.rs
@@ -76,9 +76,9 @@ impl ProductDatabaseHandler for Story {
async fn post(
&self,
pool: &SqlitePool,
- name: String,
- description: String,
- tags: Vec<String>,
+ name: &str,
+ description: &str,
+ tags: Vec<&str>,
) -> Result<Self, AppError>
where
Self: Sized,
@@ -114,13 +114,13 @@ impl ProductDatabaseHandler for Story {
}
}
-impl PageBuilder for Story {
- fn page_title() -> String {
- "Stories".to_string()
+impl<'a> PageBuilder<'a> for Story {
+ fn page_title() -> &'a str {
+ "Stories"
}
// TODO: Add pdf and epub icons
- fn product_specific_card_content<T: PageBuilder + ProductMarker>(
+ fn product_specific_card_content<T: PageBuilder<'a> + ProductMarker>(
&self,
specific_product: &super::product::SpecificProduct<T>,
) -> maud::Markup {