1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pub struct Vec2<T: Sized + Copy> {
    x: T,
    y: T,
}

impl<T: Sized + Copy> Vec2<T> {
    pub fn new(x: T, y: T) -> Self {
        Self { x, y }
    }

    pub fn x(&self) -> T {
        self.x
    }

    pub fn y(&self) -> T {
        self.y
    }
}