libgir/chunk/
parameter_ffi_call_out.rs

1use crate::{
2    analysis::{self, try_from_glib::TryFromGlib},
3    library,
4};
5
6#[derive(Clone, Debug)]
7pub struct Parameter {
8    pub name: String,
9    pub typ: library::TypeId,
10    pub transfer: library::Transfer,
11    pub caller_allocates: bool,
12    pub is_error: bool,
13    pub is_uninitialized: bool,
14    pub try_from_glib: TryFromGlib,
15}
16
17impl Parameter {
18    pub fn new(orig: &analysis::function_parameters::CParameter, is_uninitialized: bool) -> Self {
19        Self {
20            name: orig.name.clone(),
21            typ: orig.typ,
22            transfer: orig.transfer,
23            caller_allocates: orig.caller_allocates,
24            is_error: orig.is_error,
25            is_uninitialized,
26            try_from_glib: orig.try_from_glib.clone(),
27        }
28    }
29}
30
31impl From<&analysis::Parameter> for Parameter {
32    fn from(orig: &analysis::Parameter) -> Self {
33        Self {
34            name: orig.lib_par.name.clone(),
35            typ: orig.lib_par.typ,
36            transfer: orig.lib_par.transfer,
37            caller_allocates: orig.lib_par.caller_allocates,
38            is_error: orig.lib_par.is_error,
39            is_uninitialized: false,
40            try_from_glib: orig.try_from_glib.clone(),
41        }
42    }
43}