llvm_lib/
macros.rs

1/// Get a mutable pointer for the collection.
2#[macro_export]
3macro_rules! to_mut_ptr {
4    ($collection:expr) => {{
5        use $crate::GetRef;
6        let mut vec = $collection.iter().map(|v| v.get_ref()).collect::<Vec<_>>();
7        if vec.is_empty() {
8            std::ptr::null_mut()
9        } else {
10            vec.as_mut_ptr()
11        }
12    }};
13}
14
15/// Get a mutable pointer for the collection with Map function.
16#[macro_export]
17macro_rules! map_mut_ptr {
18    ($collection:expr, $map_fn:expr) => {{
19        let mut vec = $collection.iter().map($map_fn).collect::<Vec<_>>();
20        if vec.is_empty() {
21            std::ptr::null_mut()
22        } else {
23            vec.as_mut_ptr()
24        }
25    }};
26}