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 };
15 Self {
16 x: inner.x,
17 y: inner.y,
18 }
19 }
20}
21
22impl From<Vec2> for libobs::vec2 {
23 fn from(val: Vec2) -> Self {
24 libobs::vec2 {
25 __bindgen_anon_1: libobs::vec2__bindgen_ty_1 {
26 __bindgen_anon_1: libobs::vec2__bindgen_ty_1__bindgen_ty_1 { x: val.x, y: val.y },
27 },
28 }
29 }
30}
31
32#[test]
33fn test_vec2() {
34 let vec_val = Vec2::new(1.0, 2.0);
35 let libobs_vec: libobs::vec2 = vec_val.into();
36
37 let original = Vec2::from(libobs_vec);
38 assert_eq!(original.x, 1.0);
39 assert_eq!(original.y, 2.0);
40 assert_ne!(original.x, 0.0);
41 assert_ne!(original.y, 0.0);
42}
43
44#[test]
45fn test_vec2_new() {
46 let vec = Vec2::new(3.5, 4.5);
47 assert_eq!(vec.x, 3.5);
48 assert_eq!(vec.y, 4.5);
49}
50
51#[test]
52fn test_vec2_clone() {
53 let vec1 = Vec2::new(1.0, 2.0);
54 #[allow(clippy::clone_on_copy)]
55 let vec2 = vec1.clone();
56 assert_eq!(vec1.x, vec2.x);
57 assert_eq!(vec1.y, vec2.y);
58}
59
60#[test]
61fn test_vec2_copy() {
62 let vec1 = Vec2::new(1.0, 2.0);
63 let vec2 = vec1; assert_eq!(vec1.x, vec2.x);
65 assert_eq!(vec1.y, vec2.y);
66}
67
68#[test]
69fn test_vec2_debug() {
70 let vec = Vec2::new(1.0, 2.0);
71 let debug_str = format!("{:?}", vec);
72 assert!(debug_str.contains("Vec2"));
73}