Skip to content

Commit 8c7234c

Browse files
committed
Make VSS internal methods async, move block_on to impl KVStoreSync
.. as we're gonna reuse the `async` `_internal` methods shortly.
1 parent 6d321fd commit 8c7234c

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

src/io/vss_store.rs

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,15 @@ impl VssStore {
127127
Ok(keys)
128128
}
129129

130-
fn read_internal(
130+
async fn read_internal(
131131
&self, primary_namespace: &str, secondary_namespace: &str, key: &str,
132132
) -> io::Result<Vec<u8>> {
133133
check_namespace_key_validity(primary_namespace, secondary_namespace, Some(key), "read")?;
134134
let request = GetObjectRequest {
135135
store_id: self.store_id.clone(),
136136
key: self.build_key(primary_namespace, secondary_namespace, key)?,
137137
};
138-
let resp = self.runtime.block_on(self.client.get_object(&request)).map_err(|e| {
138+
let resp = self.client.get_object(&request).await.map_err(|e| {
139139
let msg = format!(
140140
"Failed to read from key {}/{}/{}: {}",
141141
primary_namespace, secondary_namespace, key, e
@@ -145,6 +145,7 @@ impl VssStore {
145145
_ => Error::new(ErrorKind::Other, msg),
146146
}
147147
})?;
148+
148149
// unwrap safety: resp.value must be always present for a non-erroneous VSS response, otherwise
149150
// it is an API-violation which is converted to [`VssError::InternalServerError`] in [`VssClient`]
150151
let storable = Storable::decode(&resp.value.unwrap().value[..]).map_err(|e| {
@@ -158,7 +159,7 @@ impl VssStore {
158159
Ok(self.storable_builder.deconstruct(storable)?.0)
159160
}
160161

161-
fn write_internal(
162+
async fn write_internal(
162163
&self, primary_namespace: &str, secondary_namespace: &str, key: &str, buf: Vec<u8>,
163164
) -> io::Result<()> {
164165
check_namespace_key_validity(primary_namespace, secondary_namespace, Some(key), "write")?;
@@ -175,7 +176,7 @@ impl VssStore {
175176
delete_items: vec![],
176177
};
177178

178-
self.runtime.block_on(self.client.put_object(&request)).map_err(|e| {
179+
self.client.put_object(&request).await.map_err(|e| {
179180
let msg = format!(
180181
"Failed to write to key {}/{}/{}: {}",
181182
primary_namespace, secondary_namespace, key, e
@@ -186,7 +187,7 @@ impl VssStore {
186187
Ok(())
187188
}
188189

189-
fn remove_internal(
190+
async fn remove_internal(
190191
&self, primary_namespace: &str, secondary_namespace: &str, key: &str, _lazy: bool,
191192
) -> io::Result<()> {
192193
check_namespace_key_validity(primary_namespace, secondary_namespace, Some(key), "remove")?;
@@ -199,25 +200,24 @@ impl VssStore {
199200
}),
200201
};
201202

202-
self.runtime.block_on(self.client.delete_object(&request)).map_err(|e| {
203+
self.client.delete_object(&request).await.map_err(|e| {
203204
let msg = format!(
204205
"Failed to delete key {}/{}/{}: {}",
205206
primary_namespace, secondary_namespace, key, e
206207
);
207208
Error::new(ErrorKind::Other, msg)
208209
})?;
210+
209211
Ok(())
210212
}
211213

212-
fn list_internal(
214+
async fn list_internal(
213215
&self, primary_namespace: &str, secondary_namespace: &str,
214216
) -> io::Result<Vec<String>> {
215217
check_namespace_key_validity(primary_namespace, secondary_namespace, None, "list")?;
216218

217-
let keys = self
218-
.runtime
219-
.block_on(self.list_all_keys(primary_namespace, secondary_namespace))
220-
.map_err(|e| {
219+
let keys =
220+
self.list_all_keys(primary_namespace, secondary_namespace).await.map_err(|e| {
221221
let msg = format!(
222222
"Failed to retrieve keys in namespace: {}/{} : {}",
223223
primary_namespace, secondary_namespace, e
@@ -233,23 +233,27 @@ impl KVStoreSync for VssStore {
233233
fn read(
234234
&self, primary_namespace: &str, secondary_namespace: &str, key: &str,
235235
) -> io::Result<Vec<u8>> {
236-
self.read_internal(primary_namespace, secondary_namespace, key)
236+
let fut = self.read_internal(primary_namespace, secondary_namespace, key);
237+
self.runtime.block_on(fut)
237238
}
238239

239240
fn write(
240241
&self, primary_namespace: &str, secondary_namespace: &str, key: &str, buf: Vec<u8>,
241242
) -> io::Result<()> {
242-
self.write_internal(primary_namespace, secondary_namespace, key, buf)
243+
let fut = self.write_internal(primary_namespace, secondary_namespace, key, buf);
244+
self.runtime.block_on(fut)
243245
}
244246

245247
fn remove(
246248
&self, primary_namespace: &str, secondary_namespace: &str, key: &str, lazy: bool,
247249
) -> io::Result<()> {
248-
self.remove_internal(primary_namespace, secondary_namespace, key, lazy)
250+
let fut = self.remove_internal(primary_namespace, secondary_namespace, key, lazy);
251+
self.runtime.block_on(fut)
249252
}
250253

251254
fn list(&self, primary_namespace: &str, secondary_namespace: &str) -> io::Result<Vec<String>> {
252-
self.list_internal(primary_namespace, secondary_namespace)
255+
let fut = self.list_internal(primary_namespace, secondary_namespace);
256+
self.runtime.block_on(fut)
253257
}
254258
}
255259

0 commit comments

Comments
 (0)