v/vlib/v/fmt/tests/generic_structs_keep.vv

46 lines
534 B
V

struct Foo<T> {
pub:
data T
}
fn (f Foo<int>) value() string {
return f.data.str()
}
type DB = string
struct Repo<T, U> {
db DB
pub mut:
model T
permission U
}
struct User {
mut:
name string
}
struct Permission {
pub mut:
name string
}
fn main() {
foo_int := Foo<int>{2}
assert foo_int.value() == '2'
println(foo_int)
//
x := Repo<int, f64>{'abc', 3, 1.5}
println(x.db)
println(x.model)
println(x.permission)
//
mut a := Repo<User,Permission>{
model: User{
name: 'joe'
}
}
println(a.model.name)
}