brotli_decompressor/
memory.rs

1#![allow(unused_macros)]
2// use core::slice;
3
4#[cfg(not(feature="unsafe"))]
5macro_rules! fast_ref {
6   (($slice : expr)[$index: expr]) => {
7       &($slice)[$index]
8   }; 
9}
10
11#[cfg(not(feature="unsafe"))]
12macro_rules! fast_inner {
13   (($slice : expr)[$index: expr]) => {
14       ($slice)[$index]
15   };
16}
17
18#[cfg(not(feature="unsafe"))]
19macro_rules! fast_inner {
20   (($slice : expr)[$index: expr]) => {
21       ($slice)[$index]
22   };
23}
24
25#[cfg(not(feature="unsafe"))]
26macro_rules! fast {
27   (($slice : expr)[$index: expr]) => {
28       ($slice)[$index]
29   };
30   (($slice : expr)[$start: expr ; $end : expr]) => {
31       &($slice)[$start .. $end]
32   };
33   (($slice : expr)[$start: expr ;]) => {
34       &($slice)[$start .. ]
35   };
36   (($slice : expr)[; $end : expr]) => {
37       &($slice)[.. $end ]
38   };
39}
40
41macro_rules! fast_uninitialized {
42    [$size : expr] => {[0; $size]};
43    [$def_value : expr ; $size : expr] => {[$def_value; $size]};
44}
45
46#[cfg(not(feature="unsafe"))]
47macro_rules! fast_mut {
48   (($slice : expr)[$index: expr]) => {
49       ($slice)[$index]
50   };
51   (($slice : expr)[$start: expr ; $end : expr]) => {
52       &mut $slice[$start..$end]
53   };
54   (($slice : expr)[$start: expr ;]) => {
55       &mut $slice[$start..]
56   };
57   (($slice : expr)[; $end : expr]) => {
58       &mut $slice[..$end]
59   };
60}
61
62
63#[cfg(feature="unsafe")]
64#[allow(unused_unsafe)]
65macro_rules! fast_ref {
66   (($slice : expr)[$index: expr]) => {
67       unsafe{$slice.get_unchecked($index)}
68   };
69}
70
71#[cfg(feature="unsafe")]
72macro_rules! fast_inner {
73   (($slice : expr)[$index: expr]) => {
74       *$slice.get_unchecked($index)
75   };
76}
77// #[cfg(feature="unsafe")]
78// macro_rules! fast_slice {
79// (($slice : expr)[$index: expr]) => {
80// unsafe{*$slice.slice().get_unchecked($index)}
81// };
82// }
83//
84#[cfg(feature="unsafe")]
85macro_rules! fast {
86   (($slice : expr)[$index: expr]) => {
87       unsafe{*$slice.get_unchecked($index)}
88   };
89   (($slice : expr)[$start: expr ; $end : expr]) => {
90       unsafe{::core::slice::from_raw_parts(($slice).as_ptr().offset($start as isize),
91                                            $end - $start)}
92   };
93   (($slice : expr)[$start: expr ;]) => {
94       unsafe{::core::slice::from_raw_parts(($slice).as_ptr().offset($start as isize),
95                                                                     $slice.len() - $start)}
96   };
97   (($slice : expr)[; $end : expr]) => {
98       unsafe{::core::slice::from_raw_parts(($slice).as_ptr(), $slice.len())}
99   };
100}
101
102macro_rules! fast_slice {
103   (($slice : expr)[$index: expr]) => {
104       fast!(($slice.slice())[$index])
105   };
106   (($slice : expr)[$index: expr;]) => {
107       fast!(($slice.slice())[$index;])
108   };
109   (($slice : expr)[$start :expr; $end: expr]) => {
110       fast!(($slice.slice())[$start;$end])
111   };
112}
113// macro_rules! fast_slice_ref {
114// (($slice : expr)[$index: expr]) => {
115// fast_ref!(($slice.slice())[$index])
116// };
117// (($slice : expr)[$index: expr]) => {
118// fast_ref!(($slice.slice())[$index])
119// };
120// }
121//
122macro_rules! fast_slice_mut {
123   (($slice : expr)[$index: expr]) => {
124       fast_mut!(($slice.slice_mut())[$index])
125   };
126   (($slice : expr)[$index: expr;]) => {
127       fast_mut!(($slice.slice_mut())[$index;])
128   };
129   (($slice : expr)[$start :expr;$end: expr]) => {
130       fast_mut!(($slice.slice_mut())[$start;$end])
131   };
132}
133
134#[cfg(feature="unsafe")]
135macro_rules! fast_mut {
136   (($slice : expr)[$index: expr]) => {
137       *unsafe{$slice.get_unchecked_mut($index)}
138   };
139   (($slice : expr)[$start: expr ; $end : expr]) => {
140       unsafe{::core::slice::from_raw_parts_mut(($slice).as_mut_ptr().offset($start as isize),
141                                                $end - $start)}
142   };
143   (($slice : expr)[$start: expr ;]) => {
144       unsafe{::core::slice::from_raw_parts_mut(($slice).as_mut_ptr().offset($start as isize),
145                                                $slice.len() - $start)}
146   };
147   (($slice : expr)[; $end : expr]) => {
148       unsafe{::core::slice::from_raw_parts_mut(($slice).as_mut_ptr(), $slice.len())}
149   };
150}
151
152// pub fn indexk<T>(item : &[T], index : usize) -> &T {
153//   return &item[index];
154// return unsafe{item.get_unchecked(index)};
155// }
156//
157// pub fn indexm<T>(item : &mut [T], index : usize) -> &mut T {
158// return &mut item[index]
159// return unsafe{item.get_unchecked_mut(index)};
160// }
161//
162//
163// pub fn slicek<T>(item : &[T], start : usize, end :usize) -> &[T] {
164// return unsafe{slice::from_raw_parts(item.as_ptr().offset(start as isize), end - start)};
165// }
166//
167// pub fn slicem<T>(item : &mut [T], start : usize, end :usize) -> &mut [T] {
168// return unsafe{slice::from_raw_parts_mut(item.as_mut_ptr().offset(start as isize), end - start)};
169// }
170//
171// pub fn slicemend<T>(item : &mut [T], start : usize) -> &mut [T] {
172// return unsafe{slice::from_raw_parts_mut(item.as_mut_ptr().offset(start as isize),
173//                                         item.len() - start)};
174// }
175//