From 23612d412e4a39e47e9beb3f29879ded602e5179 Mon Sep 17 00:00:00 2001 From: Stephen <webmaster@scd31.com> Date: Sat, 11 Feb 2023 18:29:57 -0400 Subject: [PATCH] use fnv hashmap. Since the hashmap is written to only from the disk, it is safe to use. we get more speed --- Cargo.lock | 1 + Cargo.toml | 1 + src/blog.rs | 8 ++++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b5e6a1c..182e8a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -776,6 +776,7 @@ name = "org_flux" version = "0.1.0" dependencies = [ "anyhow", + "fnv", "image", "orgize", "syntect", diff --git a/Cargo.toml b/Cargo.toml index 3c6d58b..6081198 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,3 +14,4 @@ tokio = { version = "1.0", features = ["full"] } warp = "0.3" time = { version = "0.3", features = ["macros", "formatting"] } image = "0.24.5" +fnv = "1.0" diff --git a/src/blog.rs b/src/blog.rs index e9171b4..66728dc 100644 --- a/src/blog.rs +++ b/src/blog.rs @@ -1,5 +1,5 @@ use anyhow::{bail, Error}; -use std::collections::HashMap; +use fnv::FnvHashMap; use warp::hyper::StatusCode; use crate::{ @@ -56,7 +56,7 @@ impl Blog { } pub struct RenderedBlog { - pages: HashMap<UrlPath, Response>, + pages: FnvHashMap<UrlPath, Response>, not_found: Response, } @@ -76,7 +76,7 @@ impl TryFrom<Blog> for RenderedBlog { b.pages.sort(); b.posts.sort(); - let mut pages = HashMap::new(); + let mut pages = FnvHashMap::default(); for p in &b.posts { let body = dress_page(&p.title, &p.html()?, &b.pages, &b.favicon); @@ -130,7 +130,7 @@ impl TryFrom<Blog> for RenderedBlog { } fn insert_path( - pages: &mut HashMap<UrlPath, Response>, + pages: &mut FnvHashMap<UrlPath, Response>, path: &str, value: Response, ) -> anyhow::Result<()> { -- GitLab