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}