import json

struct Result[T] {
	ok     bool
	result T
}

struct User {
	id       int
	username string
}

fn func[T]() !T {
	text := '{"ok": true, "result":{"id":37467243, "username": "ciao"}}'
	a := json.decode(Result[T], text)!
	return a.result
}

fn test_decode_with_generic_struct() {
	ret := func[User]()!
	println(ret)
	assert ret.id == 37467243
	assert ret.username == 'ciao'
}