Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit c30a303

Browse files
committed
change cow object loading error propagation issue, #67
1 parent 88446c4 commit c30a303

File tree

1 file changed

+9
-35
lines changed

1 file changed

+9
-35
lines changed

src/volume/armor.rs

+9-35
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,7 @@ pub trait Armor<'de> {
101101
Ok(item)
102102
}
103103

104-
// try to load both left and right arms
105-
#[allow(clippy::type_complexity)]
106-
fn load_arms(
107-
&self,
108-
id: &Eid,
109-
) -> Result<(Option<Self::Item>, Option<Self::Item>)> {
104+
fn load_item(&self, id: &Eid) -> Result<Self::Item> {
110105
// load left and right arms
111106
let left_arm = self.load_one_arm(id, Arm::Left);
112107
let right_arm = self.load_one_arm(id, Arm::Right);
@@ -115,40 +110,19 @@ pub trait Armor<'de> {
115110
Ok(left) => match right_arm {
116111
Ok(right) => {
117112
assert!(left.seq() != right.seq());
118-
Ok((Some(left), Some(right)))
119-
}
120-
Err(ref err) if *err == Error::NotFound => {
121-
Ok((Some(left), None))
122-
}
123-
Err(err) => Err(err),
124-
},
125-
Err(ref err) if *err == Error::NotFound => match right_arm {
126-
Ok(right) => Ok((None, Some(right))),
127-
Err(ref err) if *err == Error::NotFound => Ok((None, None)),
128-
Err(err) => Err(err),
129-
},
130-
Err(err) => Err(err),
131-
}
132-
}
133-
134-
fn load_item(&self, id: &Eid) -> Result<Self::Item> {
135-
let (left_arm, right_arm) = self.load_arms(id)?;
136-
137-
let item = match left_arm {
138-
Some(left) => match right_arm {
139-
Some(right) => {
140113
if left.seq() > right.seq() {
141-
left
114+
Ok(left)
142115
} else {
143-
right
116+
Ok(right)
144117
}
145118
}
146-
None => left,
119+
Err(_) => Ok(left),
147120
},
148-
None => right_arm.ok_or(Error::NotFound)?,
149-
};
150-
151-
Ok(item)
121+
Err(_) => match right_arm {
122+
Ok(right) => Ok(right),
123+
Err(err) => Err(err),
124+
},
125+
}
152126
}
153127

154128
// save item

0 commit comments

Comments
 (0)