libobs_wrapper\graphics/
vec2.rs1use getters0::Getters;
2
3#[derive(Debug, Clone, Copy, Getters)]
4pub struct Vec2 {
5 #[get_mut]
6 x: f32,
7 #[get_mut]
8 y: f32,
9}
10
11impl From<libobs::vec2> for Vec2 {
12 fn from(raw: libobs::vec2) -> Self {
13 let inner = unsafe { raw.__bindgen_anon_1.__bindgen_anon_1 };
14 Self {
15 x: inner.x,
16 y: inner.y,
17 }
18 }
19}
20
21impl From<Vec2> for libobs::vec2 {
22 fn from(val: Vec2) -> Self {
23 libobs::vec2 {
24 __bindgen_anon_1: libobs::vec2__bindgen_ty_1 {
25 __bindgen_anon_1: libobs::vec2__bindgen_ty_1__bindgen_ty_1 { x: val.x, y: val.y },
26 },
27 }
28 }
29}
30
31#[test]
32fn test_vec2() {
33 let vec_val = Vec2::new(1.0, 2.0);
34 let libobs_vec: libobs::vec2 = vec_val.into();
35
36 let original = Vec2::from(libobs_vec);
37 assert_eq!(original.x, 1.0);
38 assert_eq!(original.y, 2.0);
39 assert_ne!(original.x, 0.0);
40 assert_ne!(original.y, 0.0);
41}
42
43#[test]
44fn test_vec2_new() {
45 let vec = Vec2::new(3.5, 4.5);
46 assert_eq!(vec.x, 3.5);
47 assert_eq!(vec.y, 4.5);
48}
49
50#[test]
51fn test_vec2_clone() {
52 let vec1 = Vec2::new(1.0, 2.0);
53 #[allow(clippy::clone_on_copy)]
54 let vec2 = vec1.clone();
55 assert_eq!(vec1.x, vec2.x);
56 assert_eq!(vec1.y, vec2.y);
57}
58
59#[test]
60fn test_vec2_copy() {
61 let vec1 = Vec2::new(1.0, 2.0);
62 let vec2 = vec1; assert_eq!(vec1.x, vec2.x);
64 assert_eq!(vec1.y, vec2.y);
65}
66
67#[test]
68fn test_vec2_debug() {
69 let vec = Vec2::new(1.0, 2.0);
70 let debug_str = format!("{:?}", vec);
71 assert!(debug_str.contains("Vec2"));
72}