.{formatters: .{format, format_args, DEFAULT_OPTS}, log, memory, math} := @use("stn");
.{Color} := @use("lib:render")

Thingy := struct {
	a: uint,
	b: int,
	c: SubThingy,
}

SubThingy := struct {
	a: f32,
	b: bool,
}

test := fn(): uint {
	buffer := memory.request_page(1)
	log.info(format(Thingy.(-100, -100, .(-math.PI, true)), buffer))
	log.info(format(SubThingy.(-math.E, false), buffer))
	log.info(format_args(Color.{r: 255, g: 254, b: 253, a: 252}, buffer, .{
		radix: 16,
	}))
	log.info(format_args(math.LN_2, buffer, .{radix: 16, decimal_digits: 1 << 32}))
	log.info(format([u8].(1, 2, 3), buffer))
	log.info(format(&SubThingy.(0.0, true), buffer))
	log.info(format(@as(?u32, null), buffer))
	log.info(format(@as(?u32, 200), buffer))

	return 0
}