asonix
348f4ce0a3
All checks were successful
/ clippy (push) Successful in 1m23s
/ tests (push) Successful in 1m47s
/ check (aarch64-unknown-linux-musl) (push) Successful in 1m53s
/ check (armv7-unknown-linux-musleabihf) (push) Successful in 1m53s
/ check (x86_64-unknown-linux-musl) (push) Successful in 1m50s
37 lines
918 B
Rust
37 lines
918 B
Rust
use std::path::PathBuf;
|
|
|
|
use uuid::Uuid;
|
|
|
|
fn add_extension(filename: String, extension: Option<&str>) -> String {
|
|
if let Some(extension) = extension {
|
|
filename + extension
|
|
} else {
|
|
filename
|
|
}
|
|
}
|
|
|
|
pub(crate) fn generate_disk(mut path: PathBuf, extension: Option<&str>) -> PathBuf {
|
|
let (directories, filename) = generate();
|
|
path.extend(directories);
|
|
path.push(add_extension(filename, extension));
|
|
path
|
|
}
|
|
|
|
pub(crate) fn generate_object(extension: Option<&str>) -> String {
|
|
let (directories, filename) = generate();
|
|
|
|
format!(
|
|
"{}/{}",
|
|
directories.join("/"),
|
|
add_extension(filename, extension)
|
|
)
|
|
}
|
|
|
|
fn generate() -> (Vec<String>, String) {
|
|
let s = Uuid::now_v7().simple().to_string();
|
|
|
|
let directories = (0..10).map(|i| s[i * 2..i * 2 + 2].to_string()).collect();
|
|
let filename = s[20..].to_string();
|
|
|
|
(directories, filename)
|
|
}
|