v0.3.10-pre.002

This commit is contained in:
2026-09-06 09:58:31 +02:00
parent 6b434750c5
commit d0da907c00
17 changed files with 1453 additions and 29 deletions

View File

@@ -0,0 +1,49 @@
// file: crates/ksp-raw-transaction-lib/src/acquisition.rs
// version: 1
/// Complete source-neutral RAW transaction acquisition containing one canonical entity and one producer-owned observation.
pub struct RawTransactionAcquisition {
observation: ksp_store_api::RawTransactionObservation,
transaction: ksp_store_api::RawTransaction,
}
impl crate::RawTransactionAcquisition {
/// Returns the producer-owned acquisition observation linked to the canonical transaction.
#[must_use]
pub const fn observation(&self) -> &ksp_store_api::RawTransactionObservation {
return &self.observation;
}
/// Returns the canonical source-independent RAW transaction.
#[must_use]
pub const fn transaction(&self) -> &ksp_store_api::RawTransaction {
return &self.transaction;
}
/// Consumes this acquisition into its canonical transaction and observation.
#[must_use]
pub fn into_parts(self) -> (ksp_store_api::RawTransaction, ksp_store_api::RawTransactionObservation) {
return (self.transaction, self.observation);
}
}
impl std::fmt::Debug for crate::RawTransactionAcquisition {
fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
return formatter.write_str("RawTransactionAcquisition(..)");
}
}
/// Assembles one canonical transaction with a producer-owned observation key and safe acquisition provenance.
#[must_use]
pub fn assemble_raw_transaction_acquisition(
transaction: ksp_store_api::RawTransaction,
observation_key: ksp_store_api::RawObservationKey,
provenance: ksp_store_api::RawAcquisitionProvenance,
) -> crate::RawTransactionAcquisition {
let observation = ksp_store_api::RawTransactionObservation::new(observation_key, transaction.reference().clone(), provenance);
return crate::RawTransactionAcquisition { observation, transaction };
}
#[cfg(test)]
#[path = "../unit_tests/acquisition.rs"]
mod tests;