quilt-rs 0.3.0

Rust library for accessing Quilt data packages.
Documentation
//!
//! Table4 is a wrapper for arrow-rs's Table, the native Manifest format for quilt4.
//! It uses UPath to transparently read and write to/from local and remote filesystems,
//! and provides methods to read/write (decode/encode) quilt3's JSONL format
//! 

use arrow::array::{Array, ArrayRef, StringArray, Table};
use arrow::datatypes::{DataType, Field, Schema};
use arrow::error::ArrowError;

use std::collections::HashMap;

const HEADER_ROW: &str = ".";

pub struct Table4 {
    table: arrow::Table,
    path3: Option<UPath>,
    path4: Option<UPath>,
}

impl Table4 {
    // Read quilt3's JSONL format
    pub fn read3(&self) -> Result<Self, ArrowError> {
        // Implementation goes here
    }

    // Write quilt3's JSONL format
    pub fn write3(&self) -> Result<(), ArrowError> {
        // Implementation goes here
    }

    // Read quilt4's Parquet format
    pub fn read4(&self) -> Result<Self, ArrowError> {
        // Implementation goes here
    }

    // Write quilt4's Parquet format
    pub fn write4(&self) -> Result<(), ArrowError> {
        // Implementation goes here
    }

    // Get a row from the table
    pub fn get_row(&self, name: &string) -> Option<Row4> {
        // Implementation goes here
    }

    pub fn get_header(&self) -> Option<Row4> {
        self.get_row(HEADER_ROW);
    }

    pub fn list_rows(&self) -> Vec<Row4> {
        // Implementation goes here
    }
}