mod codec;
mod error;
mod group;
mod integrity;
mod schema;
pub use group::{
GROUP_PLAN_MAX_MEMBERS, GROUP_PLAN_MAX_PARTITIONS, GroupDelete, GroupMember, GroupPlan,
GroupTarget,
};
mod append_encoder;
mod append_pack;
mod output;
mod records;
mod retry;
pub use retry::{RetryFingerprint, retry_fingerprint};
mod results;
pub use results::{AppendResults, append_results, decode_append_results};
mod resolved;
pub use resolved::{
ResolvedAppendView, append_resolved_record_batch, append_resolved_wire_record_batch,
decode_resolved_append, decode_resolved_append_indexed,
decode_resolved_append_with_validated_payload,
};
mod view;
pub use append_encoder::{
AppendBodyEncoder, AppendHeader, DescriptorLayout, ValidatedWireAppend, WireBatch,
append_prepared_record_batch, append_record_batches, append_wire_record_batch,
};
pub use append_pack::{
AppendPackResult, AppendPackScratch, pack_append_payload, pack_validated_wire_append_payload,
};
pub use output::OperationOutput;
pub use records::{AppendRecordList, RecordIter, RecordParts, RecordRef};
pub use view::{
AppendBatchView, AppendBatches, AppendPartLengths, AppendParts, AppendRecordDescriptor,
AppendRecordDescriptors, AppendRecordView, AppendRecords, AppendView, BatchPayload,
PreparedAppendPayload, decode_append_batches, decode_append_batches_indexed,
decode_append_batches_with_validated_payload, decode_append_records, decode_append_view,
decode_packed_append_records,
};
const TINY_RECORDS: u32 = 1 << 31;
const PREPARED_PAYLOAD: u32 = 1 << 30;
const RECORD_COUNT_MASK: u32 = !(TINY_RECORDS | PREPARED_PAYLOAD);
pub fn append_metadata_bound(batches: usize, records: usize, resolved: bool) -> Option<usize> {
let bytes = batches
.checked_mul(76)?
.checked_add(13)?
.checked_add(records.checked_mul(24)?)?;
if resolved {
bytes
.checked_add(16)?
.checked_add(records.checked_mul(ozzy_proto::append::OUTCOME_RUN_BYTES + 32)?)
} else {
Some(bytes)
}
}
use codec::{
AppendTotals, Encoder, ReadFields, Reader, TinyTable, decode_append_batch,
encode_append_records, enforce_limit, read_descriptor_head, records_are_tiny,
validate_append_descriptors, validate_limits, validate_position_count,
validate_tiny_descriptors,
};
pub use codec::{
append_operation_body, append_operation_body_to, decode_append_summary,
decode_append_summary_and_batches, decode_append_summary_and_batches_indexed,
decode_append_summary_and_batches_with_validated_payload, decode_append_summary_and_view,
decode_operation_body, encode_operation_body, validate_operation_body,
validate_operation_body_with_validated_payload,
};
pub use error::OperationCodecError;
pub use integrity::{
canonical_body_digest, canonical_body_digest_parts, canonical_body_hasher,
logical_operation_digest, logical_operation_digest_with_body_digest,
};
pub use schema::{
Append, AppendBatch, AppendBatchSummary, AppendRecord, AppendSummary, Assign, Barrier,
CanonicalOperation, ChainPosition, CreatePartition, DedupWatermark, Digest, OpenProducer,
OperationBody, OperationHeader, OperationKind, OperationLimits, PartitionPolicy,
ProducerResultFloor, Progress, ProgressAssignment, ProgressOwner, RecordPosition,
ResolvedAppend, RetentionPolicy, RetireProducer, Trim,
};