Handled unicode error.

This commit is contained in:
2023-02-15 07:10:28 -05:00
parent 894fcbcd02
commit 9b0154064f
2 changed files with 124 additions and 9 deletions

View File

@ -40,26 +40,31 @@ impl FileData<Self> for Store {
let mut id: Vec<u8> = Vec::new();
let mut get_id = false;
let mut letter: u8;
let err_msg = "file corruption";
loop {
match data.next() {
Some(a) => letter = a.clone(),
None => {
if !name.is_empty() {
return Err(DBError::new("file corruption"));
return Err(DBError::new(err_msg));
}
break;
}
}
if letter == 0 {
if get_id {
match output.add(
"database",
str::from_utf8(&name).unwrap(),
str::from_utf8(&id).unwrap(),
) {
let name_holder = match str::from_utf8(&name) {
Ok(item) => item,
Err(_) => return Err(DBError::new(err_msg)),
};
let id_holder = match str::from_utf8(&id) {
Ok(item) => item,
Err(_) => return Err(DBError::new(err_msg)),
};
match output.add("database", name_holder, id_holder) {
Ok(_) => (),
Err(err) => {
let mut error = DBError::new("file corruption");
let mut error = DBError::new(err_msg);
error.add_source(err);
return Err(error);
}