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'
}