35 lines
798 B
Rust
35 lines
798 B
Rust
mod config;
|
|
pub mod gemini;
|
|
pub mod http;
|
|
|
|
pub use config::*;
|
|
|
|
use std::borrow;
|
|
|
|
fn append_index_to_path<'path, 'index>(
|
|
path: &'path str,
|
|
index: &'index str,
|
|
) -> borrow::Cow<'path, str> {
|
|
if path.len() == 0 {
|
|
let mut path = String::with_capacity(1 + index.len());
|
|
path.push('/');
|
|
path.push_str(index);
|
|
return borrow::Cow::Owned(path);
|
|
}
|
|
|
|
if path.ends_with('/') {
|
|
let mut indexed_path = String::with_capacity(path.len() + index.len());
|
|
indexed_path.push_str(path.as_ref());
|
|
indexed_path.push_str(index);
|
|
return borrow::Cow::Owned(indexed_path);
|
|
}
|
|
|
|
borrow::Cow::Borrowed(path)
|
|
}
|
|
|
|
fn guess_mime(path: &str) -> String {
|
|
mime_guess::from_path(path)
|
|
.first_or_octet_stream()
|
|
.to_string()
|
|
}
|