ffmpeg_the_third/codec/subtitle/
rect_common.rs1use 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}