pub unsafe extern "C" fn xT(dictionary: K) -> KExpand description
Constructor of q table object from q dictionary object.
ยงNote
Basically this is a flip command of q. Hence the value of the dictionary must have
lists as its elements.
#[macro_use]
extern crate kdbplus;
use kdbplus::qtype;
use kdbplus::api::*;
use kdbplus::api::native::*;
#[no_mangle]
pub extern "C" fn create_table(_: K) -> K{
let keys=unsafe{ktn(qtype::SYMBOL_LIST as I, 2)};
let keys_slice=keys.as_mut_slice::<S>();
keys_slice[0]=unsafe{ss(str_to_S!("time"))};
keys_slice[1]=unsafe{ss(str_to_S!("temperature"))};
let values=unsafe{knk(2)};
let time=unsafe{ktn(qtype::TIMESTAMP_LIST as I, 3)};
// 2003.10.10D02:24:19.167018272 2006.05.24D06:16:49.419710368 2008.08.12D23:12:24.018691392
time.as_mut_slice::<J>().copy_from_slice(&[119067859167018272_i64, 201766609419710368, 271897944018691392]);
let temperature=unsafe{ktn(qtype::FLOAT_LIST as I, 3)};
temperature.as_mut_slice::<F>().copy_from_slice(&[22.1_f64, 24.7, 30.5]);
values.as_mut_slice::<K>().copy_from_slice(&[time, temperature]);
unsafe{xT(xD(keys, values))}
}q)climate_change: libc_api_examples 2: (`create_table; 1);
q)climate_change[]
time temperature
-----------------------------------------
2003.10.10D02:24:19.167018272 22.1
2006.05.24D06:16:49.419710368 24.7
2008.08.12D23:12:24.018691392 30.5