Don't reuse cache struct

Also we avoid converting from String into Cow<'a, str>'
This commit is contained in:
Valentin Brandl 2019-06-16 21:45:13 +02:00
parent d609f9bf43
commit ac8ba338bb
No known key found for this signature in database
GPG Key ID: 30D341DD34118D7D

View File

@ -17,7 +17,7 @@ mod service;
mod statics; mod statics;
use crate::{ use crate::{
cache::{Cache, CacheState}, cache::CacheState,
error::{Error, Result}, error::{Error, Result},
service::{Bitbucket, FormService, GitHub, Gitlab, Service}, service::{Bitbucket, FormService, GitHub, Gitlab, Service},
statics::{CLIENT, CSS, FAVICON, OPT, REPO_COUNT, VERSION_INFO}, statics::{CLIENT, CSS, FAVICON, OPT, REPO_COUNT, VERSION_INFO},
@ -56,6 +56,12 @@ struct State {
cache: String, cache: String,
} }
#[derive(Serialize)]
struct JsonResponse<'a> {
head: &'a str,
count: u64,
}
fn pull(path: impl AsRef<Path>) -> Result<()> { fn pull(path: impl AsRef<Path>) -> Result<()> {
let repo = Repository::open_bare(path)?; let repo = Repository::open_bare(path)?;
let mut origin = repo.find_remote("origin")?; let mut origin = repo.find_remote("origin")?;
@ -193,8 +199,8 @@ fn json_hoc<T: Service>(
) -> impl Future<Item = HttpResponse, Error = Error> { ) -> impl Future<Item = HttpResponse, Error = Error> {
let mapper = |r| match r { let mapper = |r| match r {
HocResult::NotFound => p404(), HocResult::NotFound => p404(),
HocResult::Hoc { hoc, head, .. } => Ok(HttpResponse::Ok().json(Cache { HocResult::Hoc { hoc, head, .. } => Ok(HttpResponse::Ok().json(JsonResponse {
head: head.into(), head: &head,
count: hoc, count: hoc,
})), })),
}; };