pub mod reader;
pub mod writer;
mod message;
mod schema_generated;
pub use reader::{StreamReader, FileReader};
pub use writer::{StreamWriter, FileWriter};
use crate::{ArrowError, Result};
pub const ARROW_MAGIC: &[u8; 6] = b"ARROW1";
pub const IPC_VERSION: i32 = 5;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MessageType {
Schema = 0,
RecordBatch = 1,
DictionaryBatch = 2,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MetadataVersion {
V1 = 0,
V2 = 1,
V3 = 2,
V4 = 3,
V5 = 4,
}
impl Default for MetadataVersion {
fn default() -> Self {
MetadataVersion::V5
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_magic_bytes() {
assert_eq!(ARROW_MAGIC, b"ARROW1");
assert_eq!(ARROW_MAGIC.len(), 6);
}
#[test]
fn test_ipc_version() {
assert_eq!(IPC_VERSION, 5);
}
#[test]
fn test_message_types() {
assert_eq!(MessageType::Schema as i32, 0);
assert_eq!(MessageType::RecordBatch as i32, 1);
assert_eq!(MessageType::DictionaryBatch as i32, 2);
}
#[test]
fn test_metadata_version() {
let version = MetadataVersion::default();
assert_eq!(version, MetadataVersion::V5);
assert_eq!(version as i32, 4);
}
}