Improve return type for insert function
This commit is contained in:
parent
96c2864a07
commit
acf27a2d7b
|
@ -22,12 +22,24 @@ pub struct Texture {
|
|||
}
|
||||
|
||||
pub enum ReplaceTextureStatus {
|
||||
// Done.
|
||||
/// Done.
|
||||
Ok,
|
||||
|
||||
// Call Again With Texture Binary
|
||||
/// Call Again With Texture Binary
|
||||
NeedTextureData(Sha256),
|
||||
|
||||
// Name or id already in use
|
||||
Conflict,
|
||||
}
|
||||
|
||||
pub type ProtocolResult<T> = Result<T, ProtocolError>;
|
||||
pub enum ProtocolError {
|
||||
BadRequest(String),
|
||||
FileNotFound(String),
|
||||
Conflict(String),
|
||||
InternalServerError(std::io::Error),
|
||||
NotImplemented,
|
||||
}
|
||||
|
||||
impl From<io::Error> for ProtocolError {
|
||||
fn from(err: io::Error) -> Self {
|
||||
ProtocolError::InternalServerError(err)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ impl DataStore {
|
|||
&mut self,
|
||||
tex: Texture,
|
||||
data: Option<Arc<Vec<u8>>>,
|
||||
) -> io::Result<ReplaceTextureStatus> {
|
||||
) -> ProtocolResult<ReplaceTextureStatus> {
|
||||
use io::Write;
|
||||
|
||||
// Check for collisions
|
||||
|
@ -86,7 +86,9 @@ impl DataStore {
|
|||
.is_some()
|
||||
{
|
||||
// Name or id already in use
|
||||
Ok(ReplaceTextureStatus::Conflict)
|
||||
Err(ProtocolError::Conflict(
|
||||
"Name or id is already in use.".to_string(),
|
||||
))
|
||||
} else {
|
||||
// Insert it
|
||||
if self.has_hash(&tex.texture_hash)? {
|
||||
|
|
|
@ -1,10 +1 @@
|
|||
use crate::model::*;
|
||||
|
||||
pub type ProtocolResult<T> = Result<T, ProtocolError>;
|
||||
pub enum ProtocolError {
|
||||
BadRequest(String),
|
||||
FileNotFound(String),
|
||||
Conflict(String),
|
||||
InternalServerError(std::io::Error),
|
||||
NotImplemented,
|
||||
}
|
||||
|
|
|
@ -109,10 +109,6 @@ where
|
|||
panic!("Contract Violation: handler must not return NeedTextureData \
|
||||
when data is given.");
|
||||
}
|
||||
Ok(ReplaceTextureStatus::Conflict) => {
|
||||
connection
|
||||
.send(&Package::Error(409, "Conflict".to_string()))?;
|
||||
}
|
||||
Err(err) => {
|
||||
connection.send(&Package::from(err))?;
|
||||
}
|
||||
|
@ -129,9 +125,6 @@ where
|
|||
}
|
||||
}
|
||||
}
|
||||
Ok(ReplaceTextureStatus::Conflict) => {
|
||||
connection.send(&Package::Error(409, "Conflict".to_string()))?;
|
||||
}
|
||||
Err(err) => {
|
||||
connection.send(&Package::from(err))?;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue