1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
// Copyright Materialize, Inc. and contributors. All rights reserved.
//
// Use of this software is governed by the Business Source License
// included in the LICENSE file.
//
// As of the Change Date specified in that file, in accordance with
// the Business Source License, use of this software will be governed
// by the Apache License, Version 2.0.
//! Persistence for differential dataflow collections
#![doc = include_str!("../README.md")]
#![warn(missing_docs, missing_debug_implementations)]
#![warn(
clippy::cast_possible_truncation,
clippy::cast_precision_loss,
clippy::cast_sign_loss,
clippy::clone_on_ref_ptr
)]
use std::fmt;
pub mod client;
pub mod error;
pub mod file;
pub mod gen;
pub mod indexed;
pub mod mem;
pub mod operators;
pub mod pfuture;
pub mod runtime;
pub mod s3;
pub mod storage;
pub mod unreliable;
pub mod workload;
#[cfg(test)]
pub mod golden_test;
#[cfg(test)]
pub mod nemesis;
// TODO
// - Backward compatibility of persisted data, particularly the encoded keys and
// values.
// - Tighten up the jargon and usage of that jargon: write, update, persist,
// drain, entry, update, data, log, blob, indexed, unsealed, trace.
// - Think through all the <, <=, !<= usages and document them more correctly
// (aka replace before/after an antichain with in advance of/not in advance
// of).
// Testing edge cases:
// - Failure while draining from log into unsealed.
// - Equality edge cases around all the various timestamp/frontier checks.
/// A type usable as a persisted key or value.
pub trait Data: Clone + persist_types::Codec + fmt::Debug + Ord {}
impl<T: Clone + persist_types::Codec + fmt::Debug + Ord> Data for T {}