Handled unicode error.
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user