use std::sync::Arc;
use arrow_array::{ArrayRef, Float64Array, RecordBatch, StringArray, TimestampMillisecondArray};
use arrow_schema::Schema;
use crate::error::DatagenResult;
pub fn timestamp_grid_ms(start_ms: i64, step_ms: i64, n: usize) -> TimestampMillisecondArray {
let values: Vec<i64> = (0..n as i64).map(|i| start_ms + i * step_ms).collect();
TimestampMillisecondArray::from(values).with_timezone("UTC")
}
pub fn const_string(value: &str, n: usize) -> StringArray {
StringArray::from(vec![value; n])
}
pub fn f64_array(values: Vec<f64>) -> Float64Array {
Float64Array::from(values)
}
pub fn record_batch(schema: Arc<Schema>, columns: Vec<ArrayRef>) -> DatagenResult<RecordBatch> {
Ok(RecordBatch::try_new(schema, columns)?)
}