Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
557 changes: 483 additions & 74 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ im = "15.1.0"
divan = "0.1"
facet = { git = "https://github.com/facet-rs/facet", branch = "main" }
facet-core = { git = "https://github.com/facet-rs/facet", branch = "main" }
facet-postcard = { git = "https://github.com/facet-rs/facet", branch = "main" }
facet-format-postcard = { git = "https://github.com/facet-rs/facet", branch = "main", features = ["jit"] }
facet-reflect = { git = "https://github.com/facet-rs/facet", branch = "main" }
heck = "0.5.0"
parking_lot = "0.12.4"
Expand Down
2 changes: 1 addition & 1 deletion crates/picante/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ im.workspace = true
facet.workspace = true
facet-core.workspace = true
facet-reflect.workspace = true
facet-postcard.workspace = true
facet-format-postcard.workspace = true
futures-util = { version = "0.3.31", default-features = false, features = ["std", "async-await"] }
parking_lot.workspace = true
tokio.workspace = true
Expand Down
12 changes: 6 additions & 6 deletions crates/picante/src/ingredient/derived.rs
Original file line number Diff line number Diff line change
Expand Up @@ -921,7 +921,7 @@ where
deps,
};

facet_postcard::to_vec(&rec).map_err(|e| {
facet_format_postcard::to_vec(&rec).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "derived record",
message: format!("{e:?}"),
Expand All @@ -937,7 +937,7 @@ where
V: Clone + Facet<'static> + Send + Sync + 'static,
{
|kind, bytes| {
let rec: DerivedRecord<K, V> = facet_postcard::from_slice(bytes).map_err(|e| {
let rec: DerivedRecord<K, V> = facet_format_postcard::from_slice(bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "derived record",
message: format!("{e:?}"),
Expand Down Expand Up @@ -1017,14 +1017,14 @@ where
deps: dep_records,
};

let key_bytes = facet_postcard::to_vec(&key).map_err(|e| {
let key_bytes = facet_format_postcard::to_vec(&key).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "derived key",
message: format!("{e:?}"),
})
})?;

let value_bytes = facet_postcard::to_vec(&rec).map_err(|e| {
let value_bytes = facet_format_postcard::to_vec(&rec).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "derived record",
message: format!("{e:?}"),
Expand All @@ -1042,7 +1042,7 @@ where
V: Clone + Facet<'static> + Send + Sync + 'static,
{
|kind, key_bytes, value_bytes| {
let key: K = facet_postcard::from_slice(key_bytes).map_err(|e| {
let key: K = facet_format_postcard::from_slice(key_bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "derived key from WAL",
message: format!("{e:?}"),
Expand All @@ -1057,7 +1057,7 @@ where
if let Some(value_bytes) = value_bytes {
// Deserialize the full DerivedRecord
let rec: DerivedRecord<K, V> =
facet_postcard::from_slice(value_bytes).map_err(|e| {
facet_format_postcard::from_slice(value_bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "derived record from WAL",
message: format!("{e:?}"),
Expand Down
23 changes: 12 additions & 11 deletions crates/picante/src/ingredient/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ where
value: entry.value.clone(),
changed_at: entry.changed_at.0,
};
let bytes = facet_postcard::to_vec(&rec).map_err(|e| {
let bytes = facet_format_postcard::to_vec(&rec).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "input record",
message: format!("{e:?}"),
Expand All @@ -261,12 +261,13 @@ where
fn load_records(&self, records: Vec<Vec<u8>>) -> PicanteResult<()> {
let mut entries = self.entries.write();
for bytes in records {
let rec: InputRecord<K, V> = facet_postcard::from_slice(&bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "input record",
message: format!("{e:?}"),
})
})?;
let rec: InputRecord<K, V> =
facet_format_postcard::from_slice(&bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "input record",
message: format!("{e:?}"),
})
})?;
entries.insert(
rec.key,
InputEntry {
Expand All @@ -289,15 +290,15 @@ where
for (key, entry) in entries.iter() {
// Only include entries that changed after the base revision
if entry.changed_at.0 > since_revision {
let key_bytes = facet_postcard::to_vec(key).map_err(|e| {
let key_bytes = facet_format_postcard::to_vec(key).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "input key",
message: format!("{e:?}"),
})
})?;

let value_bytes = if let Some(value) = &entry.value {
let bytes = facet_postcard::to_vec(value).map_err(|e| {
let bytes = facet_format_postcard::to_vec(value).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "input value",
message: format!("{e:?}"),
Expand Down Expand Up @@ -329,15 +330,15 @@ where
key: Vec<u8>,
value: Option<Vec<u8>>,
) -> PicanteResult<()> {
let key: K = facet_postcard::from_slice(&key).map_err(|e| {
let key: K = facet_format_postcard::from_slice(&key).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "input key from WAL",
message: format!("{e:?}"),
})
})?;

let value: Option<V> = if let Some(bytes) = value {
Some(facet_postcard::from_slice(&bytes).map_err(|e| {
Some(facet_format_postcard::from_slice(&bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "input value from WAL",
message: format!("{e:?}"),
Expand Down
28 changes: 15 additions & 13 deletions crates/picante/src/ingredient/interned.rs
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ where
for (id, value) in snapshot {
let rec = InternedRecord::<K> { id: id.0, value };

let bytes = facet_postcard::to_vec(&rec).map_err(|e| {
let bytes = facet_format_postcard::to_vec(&rec).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "interned record",
message: format!("{e:?}"),
Expand All @@ -169,12 +169,13 @@ where
let mut max_id: u32 = 0;

for bytes in records {
let rec: InternedRecord<K> = facet_postcard::from_slice(&bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "interned record",
message: format!("{e:?}"),
})
})?;
let rec: InternedRecord<K> =
facet_format_postcard::from_slice(&bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "interned record",
message: format!("{e:?}"),
})
})?;

let id = InternId(rec.id);
max_id = max_id.max(id.0);
Expand Down Expand Up @@ -245,12 +246,13 @@ where
// (e.g., from a future version that does track them).

if let Some(value_bytes) = value {
let rec: InternedRecord<K> = facet_postcard::from_slice(&value_bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "interned record from WAL",
message: format!("{e:?}"),
})
})?;
let rec: InternedRecord<K> =
facet_format_postcard::from_slice(&value_bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "interned record from WAL",
message: format!("{e:?}"),
})
})?;

let id = InternId(rec.id);
let key = Key::encode_facet(rec.value.as_ref())?;
Expand Down
4 changes: 2 additions & 2 deletions crates/picante/src/key.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ pub struct Key {
impl Key {
/// Encode a key using `facet-postcard`.
pub fn encode_facet<T: Facet<'static>>(value: &T) -> PicanteResult<Self> {
let bytes = facet_postcard::to_vec(value).map_err(|e| {
let bytes = facet_format_postcard::to_vec(value).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "key",
message: format!("{e:?}"),
Expand All @@ -56,7 +56,7 @@ impl Key {

/// Decode a key using `facet-postcard`.
pub fn decode_facet<T: Facet<'static>>(&self) -> PicanteResult<T> {
facet_postcard::from_slice(self.bytes()).map_err(|e| {
facet_format_postcard::from_slice(self.bytes()).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "key",
message: format!("{e:?}"),
Expand Down
4 changes: 2 additions & 2 deletions crates/picante/src/persist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ fn ensure_unique_kinds(ingredients: &[&dyn PersistableIngredient]) -> PicanteRes
}

fn encode_cache_file(cache: &CacheFile) -> PicanteResult<Vec<u8>> {
facet_postcard::to_vec(cache).map_err(|e| {
facet_format_postcard::to_vec(cache).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "cache file",
message: format!("{e:?}"),
Expand All @@ -405,7 +405,7 @@ fn encode_cache_file(cache: &CacheFile) -> PicanteResult<Vec<u8>> {
}

fn decode_cache_file(bytes: &[u8]) -> PicanteResult<CacheFile> {
facet_postcard::from_slice(bytes).map_err(|e| {
facet_format_postcard::from_slice(bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "cache file",
message: format!("{e:?}"),
Expand Down
8 changes: 4 additions & 4 deletions crates/picante/src/wal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ impl WalWriter {
format_version: WAL_FORMAT_VERSION,
base_revision,
};
let header_bytes = facet_postcard::to_vec(&header).map_err(|e| {
let header_bytes = facet_format_postcard::to_vec(&header).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "WAL header",
message: format!("{}", e),
Expand Down Expand Up @@ -209,7 +209,7 @@ impl WalWriter {
/// is reached or when `flush()` is called explicitly.
pub fn append(&mut self, entry: WalEntry) -> PicanteResult<()> {
// Serialize the entry
let entry_bytes = facet_postcard::to_vec(&entry).map_err(|e| {
let entry_bytes = facet_format_postcard::to_vec(&entry).map_err(|e| {
Arc::new(PicanteError::Encode {
what: "WAL entry",
message: format!("{}", e),
Expand Down Expand Up @@ -343,7 +343,7 @@ impl WalReader {
})
})?;

let header: WalHeader = facet_postcard::from_slice(&header_bytes).map_err(|e| {
let header: WalHeader = facet_format_postcard::from_slice(&header_bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "WAL header",
message: format!("{}", e),
Expand Down Expand Up @@ -413,7 +413,7 @@ impl WalReader {
})
})?;

let entry: WalEntry = facet_postcard::from_slice(&entry_bytes).map_err(|e| {
let entry: WalEntry = facet_format_postcard::from_slice(&entry_bytes).map_err(|e| {
Arc::new(PicanteError::Decode {
what: "WAL entry",
message: format!("{}", e),
Expand Down
4 changes: 2 additions & 2 deletions crates/picante/tests/persist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ async fn load_cache_ignores_unknown_sections() {
],
};

let bytes = facet_postcard::to_vec(&cache).unwrap();
let bytes = facet_format_postcard::to_vec(&cache).unwrap();
tokio::fs::write(&cache_path, bytes).await.unwrap();

let db = TestDb::default();
Expand Down Expand Up @@ -279,7 +279,7 @@ async fn load_cache_kind_name_mismatch_is_warning() {
}],
};

let bytes = facet_postcard::to_vec(&cache).unwrap();
let bytes = facet_format_postcard::to_vec(&cache).unwrap();
tokio::fs::write(&cache_path, bytes).await.unwrap();

let db = TestDb::default();
Expand Down
Loading