aboutsummaryrefslogtreecommitdiff
path: root/src/table
diff options
context:
space:
mode:
Diffstat (limited to 'src/table')
-rw-r--r--src/table/lib.rs2
-rw-r--r--src/table/schema.rs11
-rw-r--r--src/table/table.rs23
3 files changed, 16 insertions, 20 deletions
diff --git a/src/table/lib.rs b/src/table/lib.rs
index e30a6665..ac129146 100644
--- a/src/table/lib.rs
+++ b/src/table/lib.rs
@@ -9,5 +9,5 @@ pub mod table_fullcopy;
pub mod table_sharded;
pub mod table_sync;
-pub use table::*;
pub use schema::*;
+pub use table::*;
diff --git a/src/table/schema.rs b/src/table/schema.rs
index cedaacac..1914320e 100644
--- a/src/table/schema.rs
+++ b/src/table/schema.rs
@@ -4,7 +4,6 @@ use serde::{Deserialize, Serialize};
use garage_util::data::*;
use garage_util::error::Error;
-
pub trait PartitionKey {
fn hash(&self) -> Hash;
}
@@ -64,11 +63,11 @@ pub trait TableSchema: Send + Sync {
type E: Entry<Self::P, Self::S>;
type Filter: Clone + Serialize + for<'de> Deserialize<'de> + Send + Sync;
- // Action to take if not able to decode current version:
- // try loading from an older version
- fn try_migrate(_bytes: &[u8]) -> Option<Self::E> {
- None
- }
+ // Action to take if not able to decode current version:
+ // try loading from an older version
+ fn try_migrate(_bytes: &[u8]) -> Option<Self::E> {
+ None
+ }
async fn updated(&self, old: Option<Self::E>, new: Option<Self::E>) -> Result<(), Error>;
fn matches_filter(_entry: &Self::E, _filter: &Self::Filter) -> bool {
diff --git a/src/table/table.rs b/src/table/table.rs
index 7a5caf4f..9d43a475 100644
--- a/src/table/table.rs
+++ b/src/table/table.rs
@@ -14,8 +14,8 @@ use garage_rpc::membership::{Ring, System};
use garage_rpc::rpc_client::*;
use garage_rpc::rpc_server::*;
-use crate::table_sync::*;
use crate::schema::*;
+use crate::table_sync::*;
const TABLE_RPC_TIMEOUT: Duration = Duration::from_secs(10);
@@ -48,7 +48,6 @@ pub enum TableRPC<F: TableSchema> {
impl<F: TableSchema> RpcMessage for TableRPC<F> {}
-
pub trait TableReplication: Send + Sync {
// See examples in table_sharded.rs and table_fullcopy.rs
// To understand various replication methods
@@ -456,15 +455,13 @@ where
ret
}
- fn decode_entry(bytes: &[u8]) -> Result<F::E, Error> {
- match rmp_serde::decode::from_read_ref::<_, F::E>(bytes) {
- Ok(x) => Ok(x),
- Err(e) => {
- match F::try_migrate(bytes) {
- Some(x) => Ok(x),
- None => Err(e.into()),
- }
- }
- }
- }
+ fn decode_entry(bytes: &[u8]) -> Result<F::E, Error> {
+ match rmp_serde::decode::from_read_ref::<_, F::E>(bytes) {
+ Ok(x) => Ok(x),
+ Err(e) => match F::try_migrate(bytes) {
+ Some(x) => Ok(x),
+ None => Err(e.into()),
+ },
+ }
+ }
}