struct Info[T] {
	data T
}

fn get_info[T](res Info[T]) string {
	return '${res}'
}

fn test_generic_struct_to_string() {
	mut ret := get_info(Info[bool]{true})
	println(ret)
	assert ret.contains('data: true')

	ret = get_info(Info[int]{123})
	println(ret)
	assert ret.contains('data: 123')

	ret = get_info(Info[f32]{f32(2.2)})
	println(ret)
	assert ret.contains('data: 2.2')

	ret = get_info(Info[f64]{2.2})
	println(ret)
	assert ret.contains('data: 2.2')

	ret = get_info(Info[string]{'aaa'})
	println(ret)
	assert ret.contains("data: 'aaa'")

	ret = get_info(Info[u64]{u64(234)})
	println(ret)
	assert ret.contains('data: 234')
}
