compile time struct