use proc_macro2::TokenStream;
use quote::quote;
use crate::parser::Relation;
use crate::codegen::CodeGen;
use data::data_type_tokens;
pub(crate) mod data;
pub(super) mod diff;
pub(super) mod time;
pub(crate) fn tuple_type(idb: &Relation, string_intern: bool) -> TokenStream {
let tuple_ty = data_type_tokens(&idb.data_type(), string_intern);
quote! { (#tuple_ty, Ts, i32) }
}
impl CodeGen {
pub(crate) fn gen_type_declarations(&self) -> TokenStream {
let diff_type = self.diff_type();
let semiring_one = self.semiring_one_value();
let ts_alias = self.timestamp_alias();
let inner_time_type = self.inner_time_type();
quote! {
#diff_type
#semiring_one
#ts_alias
#inner_time_type
}
}
}