// see: https://discordapp.com/channels/592103645835821068/592114487759470596/762270244566728704
enum WireType {
	varint          = 0
	_64bit          = 1
	length_prefixed = 2
	_32bit          = 5
}

fn pack_wire_type(w WireType) u8 {
	return u8(w)
}

fn test_casting_an_enum_to_u8() {
	x := WireType.length_prefixed
	y := pack_wire_type(x)
	assert 'x: ${x}' == 'x: length_prefixed'
	assert 'y: ${y.hex()}' == 'y: 02'
}

//

fn test_casting_a_float_to_u8() {
	x := 1.23
	b := u8(x)
	assert 'x: ${x} | b: ${b.hex()}' == 'x: 1.23 | b: 01'
}

fn test_casting_an_int_to_u8() {
	x := 12
	b := u8(x)
	assert 'x: ${x} | b: ${b.hex()}' == 'x: 12 | b: 0c'
}

fn test_casting_a_bool_to_u8() {
	x := true
	b1 := u8(x)
	assert 'x: ${x} | b: ${b1.hex()}' == 'x: true | b: 01'
	y := false
	b2 := u8(y)
	assert 'y: ${y} | b: ${b2.hex()}' == 'y: false | b: 00'
}
