Skip to content

Commit

Permalink
Propagate error instead of panicking
Browse files Browse the repository at this point in the history
  • Loading branch information
AbdelrahmanElawady committed Jul 23, 2024
1 parent e6219da commit 91bca91
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 26 deletions.
40 changes: 40 additions & 0 deletions rfs/src/merge.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
use std::path::Path;

use crate::fungi::{meta::{Inode, Walk, WalkVisitor}, Reader, Result, Writer};

pub async fn merge(
lower: Reader,
upper: Reader,
meta: Writer,

) -> Result<()> {


Ok(())
}

struct MergeVisitor {
lower: Reader,
upper: Reader,
meta: Writer,
}

impl MergeVisitor {
pub fn new(
lower: Reader,
upper: Reader,
meta: Writer,
) -> Self {
Self {
lower,
upper,
meta,
}
}
}
#[async_trait::async_trait]
impl WalkVisitor for MergeVisitor {
async fn visit(&mut self, path: &Path, node: &Inode) -> Result<Walk> {
todo!()
}
}
30 changes: 4 additions & 26 deletions rfs/src/store/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,32 +17,10 @@ pub async fn make<U: AsRef<str>>(u: U) -> Result<Stores> {
let parsed = url::Url::parse(u.as_ref())?;

match parsed.scheme() {
dir::SCHEME => {
return Ok(Stores::Dir(
dir::DirStore::make(&u)
.await
.expect("failed to make dir store"),
))
}
"s3" | "s3s" | "s3s+tls" => {
return Ok(Stores::S3(s3store::S3Store::make(&u).await.expect(
format!("failed to make {} store", parsed.scheme()).as_str(),
)))
}
"zdb" => {
return Ok(Stores::ZDB(
zdb::ZdbStore::make(&u)
.await
.expect("failed to make zdb store"),
))
}
"http" | "https" => {
return Ok(Stores::HTTP(
http::HTTPStore::make(&u)
.await
.expect("failed to make http store"),
))
}
dir::SCHEME => return Ok(Stores::Dir(dir::DirStore::make(&u).await?)),
"s3" | "s3s" | "s3s+tls" => return Ok(Stores::S3(s3store::S3Store::make(&u).await?)),
"zdb" => return Ok(Stores::ZDB(zdb::ZdbStore::make(&u).await?)),
"http" | "https" => return Ok(Stores::HTTP(http::HTTPStore::make(&u).await?)),
_ => return Err(Error::UnknownStore(parsed.scheme().into())),
}
}
Expand Down

0 comments on commit 91bca91

Please sign in to comment.