mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-29 20:44:25 +00:00
handle memory clear errors
This commit is contained in:
parent
efa3bc48c3
commit
8a4e979d48
@ -87,8 +87,10 @@ impl Gemini {
|
|||||||
|
|
||||||
/// Create new `Memory` index from `Database` for `Self`
|
/// Create new `Memory` index from `Database` for `Self`
|
||||||
pub fn index(&self) -> Result<(), Error> {
|
pub fn index(&self) -> Result<(), Error> {
|
||||||
// Cleanup previous records
|
// Clear previous records
|
||||||
self.memory.clear();
|
if let Err(reason) = self.memory.clear() {
|
||||||
|
return Err(Error::MemoryClear(reason));
|
||||||
|
}
|
||||||
|
|
||||||
// Build new index
|
// Build new index
|
||||||
match self.database.records() {
|
match self.database.records() {
|
||||||
@ -101,7 +103,8 @@ impl Gemini {
|
|||||||
}
|
}
|
||||||
Err(reason) => return Err(Error::DatabaseIndex(reason)),
|
Err(reason) => return Err(Error::DatabaseIndex(reason)),
|
||||||
};
|
};
|
||||||
Ok(()) // @TODO
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,9 @@ impl Auth {
|
|||||||
/// Create new `Memory` index from `Database` for `Self`
|
/// Create new `Memory` index from `Database` for `Self`
|
||||||
pub fn index(&self) -> Result<(), Error> {
|
pub fn index(&self) -> Result<(), Error> {
|
||||||
// Clear previous records
|
// Clear previous records
|
||||||
self.memory.clear();
|
if let Err(reason) = self.memory.clear() {
|
||||||
|
return Err(Error::MemoryClear(reason));
|
||||||
|
}
|
||||||
|
|
||||||
// Build new index
|
// Build new index
|
||||||
match self.database.records(None) {
|
match self.database.records(None) {
|
||||||
@ -100,6 +102,7 @@ impl Auth {
|
|||||||
}
|
}
|
||||||
Err(reason) => return Err(Error::DatabaseIndex(reason)),
|
Err(reason) => return Err(Error::DatabaseIndex(reason)),
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,5 +4,6 @@ pub enum Error {
|
|||||||
DatabaseRecordCreate(i64, String, sqlite::Error),
|
DatabaseRecordCreate(i64, String, sqlite::Error),
|
||||||
DatabaseRecordDelete(i64, sqlite::Error),
|
DatabaseRecordDelete(i64, sqlite::Error),
|
||||||
DatabaseRecordsRead(String, sqlite::Error),
|
DatabaseRecordsRead(String, sqlite::Error),
|
||||||
|
MemoryClear(super::memory::Error),
|
||||||
MemoryIndex(super::memory::Error),
|
MemoryIndex(super::memory::Error),
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
mod error;
|
pub mod error;
|
||||||
pub use error::Error;
|
pub use error::Error;
|
||||||
|
|
||||||
use std::{cell::RefCell, collections::HashMap};
|
use std::{cell::RefCell, collections::HashMap};
|
||||||
@ -34,8 +34,14 @@ impl Memory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Cleanup index
|
/// Cleanup index
|
||||||
pub fn clear(&self) {
|
pub fn clear(&self) -> Result<(), Error> {
|
||||||
self.index.borrow_mut().clear()
|
let mut index = self.index.borrow_mut();
|
||||||
|
index.clear();
|
||||||
|
if index.is_empty() {
|
||||||
|
Ok(())
|
||||||
|
} else {
|
||||||
|
Err(Error::Clear)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get `profile_identity_gemini_id` vector match given `request`
|
/// Get `profile_identity_gemini_id` vector match given `request`
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
|
Clear,
|
||||||
Overwrite(i64),
|
Overwrite(i64),
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ pub enum Error {
|
|||||||
AuthInit(super::auth::Error),
|
AuthInit(super::auth::Error),
|
||||||
DatabaseIndex(sqlite::Error),
|
DatabaseIndex(sqlite::Error),
|
||||||
DatabaseRecordCreate(sqlite::Error),
|
DatabaseRecordCreate(sqlite::Error),
|
||||||
|
MemoryClear(super::memory::Error),
|
||||||
MemoryIndex(i64),
|
MemoryIndex(i64),
|
||||||
Certificate(Box<dyn std::error::Error>),
|
Certificate(Box<dyn std::error::Error>),
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
mod error;
|
pub mod error;
|
||||||
use error::Error;
|
pub use error::Error;
|
||||||
|
|
||||||
use std::{cell::RefCell, collections::HashMap};
|
use std::{cell::RefCell, collections::HashMap};
|
||||||
|
|
||||||
@ -38,7 +38,13 @@ impl Memory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Cleanup index
|
/// Cleanup index
|
||||||
pub fn clear(&self) {
|
pub fn clear(&self) -> Result<(), Error> {
|
||||||
self.index.borrow_mut().clear()
|
let mut index = self.index.borrow_mut();
|
||||||
|
index.clear();
|
||||||
|
if index.is_empty() {
|
||||||
|
Ok(())
|
||||||
|
} else {
|
||||||
|
Err(Error::Clear)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
|
Clear,
|
||||||
NotFound(i64),
|
NotFound(i64),
|
||||||
Overwrite(String),
|
Overwrite(String),
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user