use chrono::{TimeZone, Utc};
use ndarray::arr1;
use questdb::{
Result,
ingress::{Sender, TimestampNanos},
};
fn main() -> Result<()> {
let host: String = std::env::args().nth(1).unwrap_or("localhost".to_string());
let port: String = std::env::args().nth(2).unwrap_or("9009".to_string());
let mut sender = Sender::from_conf(format!("tcp::addr={host}:{port};protocol_version=3;"))?;
let mut buffer = sender.new_buffer();
let designated_timestamp =
TimestampNanos::from_datetime(Utc.with_ymd_and_hms(1997, 7, 4, 4, 56, 55).unwrap())?;
buffer
.table("trades")?
.symbol("symbol", "ETH-USD")?
.symbol("side", "sell")?
.column_dec("price", "2615.54")?
.column_f64("amount", 0.00044)?
.column_arr("location", &arr1(&[100.0, 100.1, 100.2]).view())?
.at(designated_timestamp)?;
sender.flush(&mut buffer)?;
Ok(())
}