1mod api;
2mod kf_api;
3mod request;
4mod response;
5mod error;
6mod batch;
7mod record;
8mod common;
9mod group_protocol_metadata;
10mod group_assigment;
11mod flv_errors;
1213pub type Offset = i64;
14pub type Size = u32;
1516pub use self::api::KfApiKey;
17pub use self::api::KfRequestMessage;
18pub use self::api::Request;
19pub use self::api::RequestHeader;
20pub use self::kf_api::AllKfApiKey;
21pub use self::request::RequestMessage;
2223pub use self::response::ResponseMessage;
2425pub use self::batch::Batch;
26pub use self::batch::BatchRecords;
27pub use self::batch::DefaultBatch;
28pub use self::batch::DefaultBatchRecords;
29pub use self::record::DefaultRecord;
30pub use self::record::RecordSet;
31pub use self::record::Record;
32pub use self::record::RecordHeader;
33pub use self::batch::BATCH_HEADER_SIZE;
34pub use self::batch::BATCH_PREAMBLE_SIZE;
35pub use self::group_protocol_metadata::ProtocolMetadata;
36pub use self::group_protocol_metadata::Metadata;
37pub use self::group_assigment::GroupAssignment;
38pub use self::group_assigment::Assignment;
39pub use self::common::*;
4041pub use self::error::ErrorCode;
42pub use self::flv_errors::FlvErrorCode;
4344pub const MAX_BYTES: i32 = 52428800;
4546#[macro_export]
47macro_rules! api_decode {
48 ($api:ident,$req:ident,$src:expr,$header:expr) => {{
49use kf_protocol::Decoder;
50let request = $req::decode_from($src, $header.api_version())?;
51Ok($api::$req(RequestMessage::new($header, request)))
52 }};
53}
5455/// Offset information about Partition
56pub trait PartitionOffset {
5758/// last offset that was committed
59fn last_stable_offset(&self) -> i64;
6061// beginning offset for the partition
62fn start_offset(&self) -> i64;
636465}