Skip to content

Commit 87ae4cd

Browse files
authored
linera-client: improve error behaviour on open failure (#2738)
1 parent 95cdf68 commit 87ae4cd

File tree

1 file changed

+7
-11
lines changed
  • linera-client/src/persistent

1 file changed

+7
-11
lines changed

linera-client/src/persistent/file.rs

+7-11
Original file line numberDiff line numberDiff line change
@@ -150,20 +150,16 @@ impl<T: serde::Serialize + serde::de::DeserializeOwned> File<T> {
150150
) -> Result<Self, Error> {
151151
let lock = Lock::new(open_options().read(true).open(path)?)?;
152152
let mut reader = io::BufReader::new(&lock.0);
153-
let dirty;
154-
155-
let value = if reader.fill_buf()?.is_empty() {
156-
dirty = Dirty::new(true);
157-
value()?
158-
} else {
159-
dirty = Dirty::new(false);
160-
serde_json::from_reader(reader)?
161-
};
153+
let file_is_empty = reader.fill_buf()?.is_empty();
162154

163155
Ok(Self {
164-
value,
156+
value: if file_is_empty {
157+
value()?
158+
} else {
159+
serde_json::from_reader(reader)?
160+
},
161+
dirty: Dirty::new(file_is_empty),
165162
path: path.into(),
166-
dirty,
167163
_lock: lock,
168164
})
169165
}

0 commit comments

Comments
 (0)