pub struct Field { key : String value : String } pub fn field(key : String, value : String) -> Field { { key, value } } pub struct Record { level : Level timestamp_ms : UInt64 target : String message : String fields : Array[Field] } fn record( level : Level, message : String, timestamp_ms~ : UInt64 = 0UL, target~ : String = "", fields~ : Array[Field] = [], ) -> Record { { level, timestamp_ms, target, message, fields } }