Skip to main content

ffmpeg_the_third/codec/subtitle/
rect_common.rs

1use crate::macros::impl_for_many;
2
3use super::{Flags, RectMut, RectRef, Type};
4use crate::utils;
5use crate::AsPtr;
6
7impl_for_many! {
8    impl for RectRef<'s>, RectMut<'s> {
9        pub fn kind(&self) -> Type {
10            unsafe { (*self.as_ptr()).type_.into() }
11        }
12
13        pub fn flags(&self) -> Flags {
14            let flags = unsafe { (*self.as_ptr()).flags };
15            Flags::from_bits_retain(flags)
16        }
17
18        pub fn x(&self) -> usize {
19            unsafe { (*self.as_ptr()).x as usize }
20        }
21
22        pub fn y(&self) -> usize {
23            unsafe { (*self.as_ptr()).y as usize }
24        }
25
26        pub fn width(&self) -> u32 {
27            unsafe { (*self.as_ptr()).w as u32 }
28        }
29
30        pub fn height(&self) -> u32 {
31            unsafe { (*self.as_ptr()).h as u32 }
32        }
33
34        pub fn colors(&self) -> usize {
35            unsafe { (*self.as_ptr()).nb_colors as usize }
36        }
37
38        pub fn text(&self) -> Option<&str> {
39            unsafe { utils::optional_str_from_c_ptr((*self.as_ptr()).text) }
40        }
41
42        pub fn ass(&self) -> Option<&str> {
43            unsafe { utils::optional_str_from_c_ptr((*self.as_ptr()).ass) }
44        }
45    }
46}