libheif_rs/
security_limits.rs1use std::ptr::NonNull;
2
3use libheif_sys as lh;
4
5#[derive(Clone, Copy)]
9pub struct SecurityLimits {
10 inner: lh::heif_security_limits,
11}
12
13impl Default for SecurityLimits {
14 fn default() -> Self {
15 let inner_ptr = unsafe { lh::heif_get_global_security_limits() };
16 if inner_ptr.is_null() {
17 panic!("heif_get_global_security_limits returned the null pointer");
18 }
19 Self {
20 inner: unsafe { *inner_ptr },
21 }
22 }
23}
24
25impl SecurityLimits {
26 pub fn new() -> Self {
28 Self::default()
29 }
30
31 pub(crate) fn from_inner(inner_ptr: NonNull<lh::heif_security_limits>) -> Self {
32 Self {
33 inner: unsafe { *inner_ptr.as_ref() },
34 }
35 }
36
37 pub(crate) fn as_inner(&self) -> &lh::heif_security_limits {
38 &self.inner
39 }
40
41 pub fn max_image_size_pixels(&self) -> u64 {
45 self.inner.max_image_size_pixels
46 }
47
48 pub fn set_max_image_size_pixels(&mut self, v: u64) {
49 self.inner.max_image_size_pixels = v
50 }
51
52 pub fn max_number_of_tiles(&self) -> u64 {
53 self.inner.max_number_of_tiles
54 }
55
56 pub fn set_max_number_of_tiles(&mut self, v: u64) {
57 self.inner.max_number_of_tiles = v
58 }
59
60 pub fn max_bayer_pattern_pixels(&self) -> u32 {
61 self.inner.max_bayer_pattern_pixels
62 }
63
64 pub fn set_max_bayer_pattern_pixels(&mut self, v: u32) {
65 self.inner.max_bayer_pattern_pixels = v
66 }
67
68 pub fn max_items(&self) -> u32 {
69 self.inner.max_items
70 }
71
72 pub fn set_max_items(&mut self, v: u32) {
73 self.inner.max_items = v
74 }
75
76 pub fn max_color_profile_size(&self) -> u32 {
77 self.inner.max_color_profile_size
78 }
79
80 pub fn set_max_color_profile_size(&mut self, v: u32) {
81 self.inner.max_color_profile_size = v
82 }
83
84 pub fn max_memory_block_size(&self) -> u64 {
85 self.inner.max_memory_block_size
86 }
87
88 pub fn set_max_memory_block_size(&mut self, v: u64) {
89 self.inner.max_memory_block_size = v
90 }
91
92 pub fn max_components(&self) -> u32 {
93 self.inner.max_components
94 }
95
96 pub fn set_max_components(&mut self, v: u32) {
97 self.inner.max_components = v
98 }
99
100 pub fn max_iloc_extents_per_item(&self) -> u32 {
101 self.inner.max_iloc_extents_per_item
102 }
103
104 pub fn set_max_iloc_extents_per_item(&mut self, v: u32) {
105 self.inner.max_iloc_extents_per_item = v
106 }
107
108 pub fn max_size_entity_group(&self) -> u32 {
109 self.inner.max_size_entity_group
110 }
111
112 pub fn set_max_size_entity_group(&mut self, v: u32) {
113 self.inner.max_size_entity_group = v
114 }
115
116 pub fn max_children_per_box(&self) -> u32 {
118 self.inner.max_children_per_box
119 }
120
121 pub fn set_max_children_per_box(&mut self, v: u32) {
122 self.inner.max_children_per_box = v
123 }
124}