Merge branch 'hash-type-in-filename'
This commit is contained in:
commit
d4cb51486b
2 changed files with 51 additions and 11 deletions
|
@ -224,12 +224,20 @@ impl StorageBackend {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn build_filepath_with_id(&self, owner: &Module, id: FileID) -> String {
|
fn build_filepath_with_id(&self, owner: &Module, id: FileID) -> String {
|
||||||
|
let idstr : String = id.clone().into();
|
||||||
|
let idtype : FileIDType = id.into();
|
||||||
|
let typestr : String = idtype.into();
|
||||||
|
|
||||||
debug!("Building filepath with id");
|
debug!("Building filepath with id");
|
||||||
debug!(" basepath: '{}'", self.basepath);
|
debug!(" basepath: '{}'", self.basepath);
|
||||||
debug!(" storepath: '{}'", self.storepath);
|
debug!(" storepath: '{}'", self.storepath);
|
||||||
debug!(" id : '{}'", id);
|
debug!(" id: '{}'", idstr);
|
||||||
let idstr : String = id.into();
|
debug!(" type: '{}'", typestr);
|
||||||
self.prefix_of_files_for_module(owner) + "-" + &idstr[..] + ".imag"
|
|
||||||
|
self.prefix_of_files_for_module(owner) +
|
||||||
|
"-" + &typestr[..] +
|
||||||
|
"-" + &idstr[..] +
|
||||||
|
".imag"
|
||||||
}
|
}
|
||||||
|
|
||||||
fn prefix_of_files_for_module(&self, m: &Module) -> String {
|
fn prefix_of_files_for_module(&self, m: &Module) -> String {
|
||||||
|
|
|
@ -18,6 +18,38 @@ pub enum FileIDType {
|
||||||
UUID,
|
UUID,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Into<String> for FileIDType {
|
||||||
|
|
||||||
|
fn into(self) -> String {
|
||||||
|
let s = match self {
|
||||||
|
FileIDType::UUID => "UUID",
|
||||||
|
FileIDType::NONE => "",
|
||||||
|
};
|
||||||
|
|
||||||
|
String::from(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> From<&'a str> for FileIDType {
|
||||||
|
|
||||||
|
fn from(s: &'a str) -> FileIDType {
|
||||||
|
match s {
|
||||||
|
"UUID" => FileIDType::UUID,
|
||||||
|
_ => FileIDType::NONE,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<String> for FileIDType {
|
||||||
|
|
||||||
|
fn from(s: String) -> FileIDType {
|
||||||
|
FileIDType::from(&s[..])
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct FileID {
|
pub struct FileID {
|
||||||
id: Option<String>,
|
id: Option<String>,
|
||||||
|
@ -77,6 +109,13 @@ impl Into<String> for FileID {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Into<FileIDType> for FileID {
|
||||||
|
|
||||||
|
fn into(self) -> FileIDType {
|
||||||
|
self.id_type.clone()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl From<String> for FileID {
|
impl From<String> for FileID {
|
||||||
|
|
||||||
fn from(s: String) -> FileID {
|
fn from(s: String) -> FileID {
|
||||||
|
@ -112,7 +151,7 @@ impl<'a> From<&'a String> for FileID {
|
||||||
debug!(" Hash Name: {:?}", hashname);
|
debug!(" Hash Name: {:?}", hashname);
|
||||||
debug!(" Hash: {:?}", hash);
|
debug!(" Hash: {:?}", hash);
|
||||||
|
|
||||||
let idtype = select_id_type_from_str(hashname);
|
let idtype = FileIDType::from(hashname);
|
||||||
match idtype {
|
match idtype {
|
||||||
FileIDType::NONE => hash = "INVALID",
|
FileIDType::NONE => hash = "INVALID",
|
||||||
_ => {},
|
_ => {},
|
||||||
|
@ -192,13 +231,6 @@ impl<'a> Display for FileIDError {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn select_id_type_from_str(s: &str) -> FileIDType {
|
|
||||||
match s {
|
|
||||||
"UUID" => FileIDType::UUID,
|
|
||||||
_ => FileIDType::NONE,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub type FileIDResult = Result<FileID, FileIDError>;
|
pub type FileIDResult = Result<FileID, FileIDError>;
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
|
Loading…
Reference in a new issue