Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

f32 not known to byvalue_checker #192

Closed
kilimnik opened this issue Jan 12, 2021 · 4 comments · Fixed by #193
Closed

f32 not known to byvalue_checker #192

kilimnik opened this issue Jan 12, 2021 · 4 comments · Fixed by #193

Comments

@kilimnik
Copy link

kilimnik commented Jan 12, 2021

The old class build now :). I tried another one but now I get the following

  thread 'main' panicked at 'Type Slic3r::f32 not known to byvalue_checker', /home/daniel/.cargo/git/checkouts/autocxx-369cba6970eb5724/3ddb255/engine/src/byvalue_checker.rs:166:28
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I also took a look at the output of RUST_LOG=autocxx_engine=info.
The output looks very weird first of all I noticed that a lot of functions are defined twice e.g.

extern "C" {
    #[link_name = "\u{1}_ZN6Slic3r12ConfigOption6setIntEi"]
    pub fn setInt(this: *mut ::std::os::raw::c_void, arg1: ::std::os::raw::c_int);
}        extern "C" {
    #[link_name = "\u{1}_ZN6Slic3r12ConfigOption6setIntEi"]
    pub fn setInt(this: *mut ::std::os::raw::c_void, arg1: ::std::os::raw::c_int);
}

Also I noticed the following method gets generated:

extern "C" {
    #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption8getFloatEv"]
    pub fn getFloat(this: *mut ::std::os::raw::c_void) -> f64;
}

I am not sure if this is correct but getFloat should return f32. Then there should be a function getDouble which returns f64.

@adetaylor
Copy link
Collaborator

Basic float and double support now merged.

On other points you raise,

  • I can't explain why functions are defined twice. It would be bindgen that's making that error. Could you paste in the full log output?
  • I also can't explain why bindgen would think that getFloat returns a double not a float. We could possibly try fiddling with the bindgen float options and then use std::os::raw::c_float/std::os::raw::c_double just as we do for standard C integer types. I suspect this might be machine-specific... on my machine it's correctly treating float as f32 and double as f64 and the same on the github test machine.

Finally... the big problem here is that these are virtual functions, and we don't support them yet: #195.

@kilimnik
Copy link
Author

Here is the full log:

  cargo:warning=MESSAGE:Bindings: mod bindgen { /* automatically generated by rust-bindgen 0.56.1 */

  #[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
  pub mod root {
      #[allow(unused_imports)]
      use self::super::root;#[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
  pub mod root {
      #[allow(unused_imports)]
      use self::super::root;
      pub type size_t = ::std::os::raw::c_ulong;
      #[repr(C)]
      pub struct __locale_struct {

      pub type size_t = ::std::os::raw::c_ulong;
      #[repr(C)]
      pub struct __locale_struct {
          pub __locales: [*mut root::__locale_data; 13usize],
          pub __ctype_b: *const ::std::os::raw::c_ushort,
          pub __ctype_tolower: *const ::std::os::raw::c_int,
          pub __ctype_toupper: *const ::std::os::raw::c_int,
          pub __names: [*const ::std::os::raw::c_char; 13usize],          pub __locales: [*mut root::__locale_data; 13usize],
          pub __ctype_b: *const ::std::os::raw::c_ushort,
          pub __ctype_tolower: *const ::std::os::raw::c_int,
          pub __ctype_toupper: *const ::std::os::raw::c_int,
          pub __names: [*const ::std::os::raw::c_char; 13usize],
      }
      pub type __locale_t = *mut root::__locale_struct;
      pub type pthread_once_t = ::std::os::raw::c_int;

      }
      pub type __locale_t = *mut root::__locale_struct;
      pub type pthread_once_t = ::std::os::raw::c_int;
      pub type __gthread_once_t = root::pthread_once_t;
      pub type _Atomic_word = ::std::os::raw::c_int;
      pub mod __pstl {
          #[allow(unused_imports)]
          use self::super::super::root;
          pub mod execution {
      pub type __gthread_once_t = root::pthread_once_t;
      pub type _Atomic_word = ::std::os::raw::c_int;
      pub mod __pstl {
          #[allow(unused_imports)]
          use self::super::super::root;
          pub mod execution {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
      }              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
      }
      pub mod boost {
          #[allow(unused_imports)]
          use self::super::super::root;

      pub mod boost {
          #[allow(unused_imports)]
          use self::super::super::root;
          pub mod detail {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }          pub mod detail {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod mpl {
              #[allow(unused_imports)]
              use self::super::super::super::root;

          pub mod mpl {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod io {
              #[allow(unused_imports)]
              use self::super::super::super::root;          }
          pub mod io {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod polygon {
              #[allow(unused_imports)]
  
          }
          pub mod polygon {
              #[allow(unused_imports)]
              use self::super::super::super::root;
              pub mod detail {
                  #[allow(unused_imports)]
                  use self::super::super::super::super::root;            use self::super::super::super::root;
              pub mod detail {
                  #[allow(unused_imports)]
                  use self::super::super::super::super::root;
              }
          }
          pub mod iterators {
  
              }
          }
          pub mod iterators {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod concepts {
            #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod concepts {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
                #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod algorithm {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }        pub mod algorithm {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod property_tree {
              #[allow(unused_imports)]
              use self::super::super::super::root;

          pub mod property_tree {
              #[allow(unused_imports)]
              use self::super::super::super::root;
              #[repr(C)]
              pub struct basic_ptree {
                  pub _address: u8,
              }              #[repr(C)]
              pub struct basic_ptree {
                  pub _address: u8,
              }
              pub type ptree = root::boost::property_tree::basic_ptree;
          }
      }
      pub mod mpl_ {
  
              pub type ptree = root::boost::property_tree::basic_ptree;
          }
      }
      pub mod mpl_ {
          #[allow(unused_imports)]
          use self::super::super::root;
      }
      pub mod Slic3r {
        #[allow(unused_imports)]
          use self::super::super::root;
      }
      pub mod Slic3r {
          #[allow(unused_imports)]
          use self::super::super::root;
          #[repr(C)]
            #[allow(unused_imports)]
          use self::super::super::root;
          #[repr(C)]
          pub struct clonable_ptr<T> {
              #[doc = "!< Native pointer"]
              pub px: *mut T,
              pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
          }
          #[doc = " The type of the managed object, aliased as member type"]
          pub type element_type<T> = T;        pub struct clonable_ptr<T> {
              #[doc = "!< Native pointer"]
              pub px: *mut T,
              pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
          }
          #[doc = " The type of the managed object, aliased as member type"]
          pub type element_type<T> = T;
          pub type t_config_option_key = root::std::string;
          pub type t_config_option_keys = root::std::vector<root::std::string>;
          #[repr(u32)]
  
          pub type t_config_option_key = root::std::string;
          pub type t_config_option_keys = root::std::vector<root::std::string>;
          #[repr(u32)]
          #[derive(Copy, Clone, Hash, PartialEq, Eq)]
          pub enum ConfigOptionType {
              coVectorType = 16384,
              coNone = 0,        #[derive(Copy, Clone, Hash, PartialEq, Eq)]
          pub enum ConfigOptionType {
              coVectorType = 16384,
              coNone = 0,
              coFloat = 1,
              coFloats = 16385,
              coInt = 2,
  
              coFloat = 1,
              coFloats = 16385,
              coInt = 2,
              coInts = 16386,
              coString = 3,
              coStrings = 16387,
              coPercent = 4,
            coInts = 16386,
              coString = 3,
              coStrings = 16387,
              coPercent = 4,
              coPercents = 16388,
              coFloatOrPercent = 5,
              coFloatsOrPercents = 16389,
                coPercents = 16388,
              coFloatOrPercent = 5,
              coFloatsOrPercents = 16389,
              coPoint = 6,
              coPoints = 16390,
              coPoint3 = 7,
              coBool = 8,
            coPoint = 6,
              coPoints = 16390,
              coPoint3 = 7,
              coBool = 8,
              coBools = 16392,
              coEnum = 9,
          }
                coBools = 16392,
              coEnum = 9,
          }
          #[repr(u32)]
          #[derive(Copy, Clone, Hash, PartialEq, Eq)]
          pub enum ConfigOptionMode {
              comSimple = 0,
        #[repr(u32)]
          #[derive(Copy, Clone, Hash, PartialEq, Eq)]
          pub enum ConfigOptionMode {
              comSimple = 0,
              comAdvanced = 1,
              comExpert = 2,
          }
                comAdvanced = 1,
              comExpert = 2,
          }
          #[repr(u8)]
          #[derive(Copy, Clone, Hash, PartialEq, Eq)]
          pub enum PrinterTechnology {
              ptFFF = 0,        #[repr(u8)]
          #[derive(Copy, Clone, Hash, PartialEq, Eq)]
          pub enum PrinterTechnology {
              ptFFF = 0,
              ptSLA = 1,
              ptUnknown = 2,
              ptAny = 3,
  
              ptSLA = 1,
              ptUnknown = 2,
              ptAny = 3,
          }
          #[repr(C)]
          pub struct ConfigOption__bindgen_vtable(::std::os::raw::c_void);
          #[repr(C)]        }
          #[repr(C)]
          pub struct ConfigOption__bindgen_vtable(::std::os::raw::c_void);
          #[repr(C)]
          pub struct ConfigOption {
              pub vtable_: *const ConfigOption__bindgen_vtable,
          }
          extern "C" {

          pub struct ConfigOption {
              pub vtable_: *const ConfigOption__bindgen_vtable,
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption9is_scalarEv"]
              pub fn is_scalar(this: *const root::Slic3r::ConfigOption) -> bool;
          }
                #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption9is_scalarEv"]
              pub fn is_scalar(this: *const root::Slic3r::ConfigOption) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption9is_vectorEv"]
              pub fn is_vector(this: *const root::Slic3r::ConfigOption) -> bool;
          }        extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption9is_vectorEv"]
              pub fn is_vector(this: *const root::Slic3r::ConfigOption) -> bool;
          }
          impl ConfigOption {
              #[inline]
              pub unsafe fn is_scalar(&self) -> bool {
                  is_scalar(self)
              }
              #[inline]
          impl ConfigOption {
              #[inline]
              pub unsafe fn is_scalar(&self) -> bool {
                  is_scalar(self)
              }
              #[inline]
              pub unsafe fn is_vector(&self) -> bool {
                  is_vector(self)
              }
  
              pub unsafe fn is_vector(&self) -> bool {
                  is_vector(self)
              }
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12ConfigOptionD1Ev"]
              pub fn ConfigOption_destructor(this: *mut root::Slic3r::ConfigOption);        }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12ConfigOptionD1Ev"]
              pub fn ConfigOption_destructor(this: *mut root::Slic3r::ConfigOption);
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption6getIntEv"]

          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption6getIntEv"]
              pub fn getInt(this: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption8getFloatEv"]              pub fn getInt(this: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption8getFloatEv"]
              pub fn getFloat(this: *mut ::std::os::raw::c_void) -> f64;
          }
          extern "C" {

              pub fn getFloat(this: *mut ::std::os::raw::c_void) -> f64;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption7getBoolEv"]
              pub fn getBool(this: *mut ::std::os::raw::c_void) -> bool;
          }
                #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption7getBoolEv"]
              pub fn getBool(this: *mut ::std::os::raw::c_void) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12ConfigOption6setIntEi"]
              pub fn setInt(this: *mut ::std::os::raw::c_void, arg1: ::std::os::raw::c_int);
          }        extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12ConfigOption6setIntEi"]
              pub fn setInt(this: *mut ::std::os::raw::c_void, arg1: ::std::os::raw::c_int);
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption8nullableEv"]
              pub fn nullable(this: *mut ::std::os::raw::c_void) -> bool;

          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption8nullableEv"]
              pub fn nullable(this: *mut ::std::os::raw::c_void) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption6is_nilEv"]
            }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption6is_nilEv"]
              pub fn is_nil(this: *mut ::std::os::raw::c_void) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption12overriden_byEPKS0_"]
            pub fn is_nil(this: *mut ::std::os::raw::c_void) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r12ConfigOption12overriden_byEPKS0_"]
              pub fn overriden_by(
                  this: *mut ::std::os::raw::c_void,
                  rhs: *const root::Slic3r::ConfigOption,
                pub fn overriden_by(
                  this: *mut ::std::os::raw::c_void,
                  rhs: *const root::Slic3r::ConfigOption,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12ConfigOption14apply_overrideEPKS0_"]            ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12ConfigOption14apply_overrideEPKS0_"]
              pub fn apply_override(
                  this: *mut ::std::os::raw::c_void,
                  rhs: *const root::Slic3r::ConfigOption,
              ) -> bool;
          }
          pub type t_config_enum_values = root::std::map<
              root::std::string,
  
              pub fn apply_override(
                  this: *mut ::std::os::raw::c_void,
                  rhs: *const root::Slic3r::ConfigOption,
              ) -> bool;
          }
          pub type t_config_enum_values = root::std::map<
              root::std::string,
              ::std::os::raw::c_int,
              root::std::less<
                  root::std::basic_string<
                      ::std::os::raw::c_char,
            ::std::os::raw::c_int,
              root::std::less<
                  root::std::basic_string<
                      ::std::os::raw::c_char,
                      root::std::char_traits<::std::os::raw::c_char>,
                      root::std::allocator<::std::os::raw::c_char>,
                  >,
                        root::std::char_traits<::std::os::raw::c_char>,
                      root::std::allocator<::std::os::raw::c_char>,
                  >,
              >,
              root::std::allocator<
                  root::std::pair<
                      root::std::basic_string<
            >,
              root::std::allocator<
                  root::std::pair<
                      root::std::basic_string<
                          ::std::os::raw::c_char,
                          root::std::char_traits<::std::os::raw::c_char>,
                          root::std::allocator<::std::os::raw::c_char>,
                            ::std::os::raw::c_char,
                          root::std::char_traits<::std::os::raw::c_char>,
                          root::std::allocator<::std::os::raw::c_char>,
                      >,
                      ::std::os::raw::c_int,
                  >,
              >,
                    >,
                      ::std::os::raw::c_int,
                  >,
              >,
          >;
          #[repr(C)]
          pub struct ConfigOptionDef {
              pub opt_key: root::Slic3r::t_config_option_key,          >;
          #[repr(C)]
          pub struct ConfigOptionDef {
              pub opt_key: root::Slic3r::t_config_option_key,
              pub type_: root::Slic3r::ConfigOptionType,
              pub nullable: bool,
              pub default_value: root::Slic3r::clonable_ptr<root::Slic3r::ConfigOption>,

              pub type_: root::Slic3r::ConfigOptionType,
              pub nullable: bool,
              pub default_value: root::Slic3r::clonable_ptr<root::Slic3r::ConfigOption>,
              pub gui_type: root::std::string,
              pub __bindgen_padding_0: [u64; 3usize],
              pub gui_flags: root::std::string,
                pub gui_type: root::std::string,
              pub __bindgen_padding_0: [u64; 3usize],
              pub gui_flags: root::std::string,
              pub __bindgen_padding_1: [u64; 3usize],
              pub label: root::std::string,
              pub __bindgen_padding_2: [u64; 3usize],
              pub full_label: root::std::string,            pub __bindgen_padding_1: [u64; 3usize],
              pub label: root::std::string,
              pub __bindgen_padding_2: [u64; 3usize],
              pub full_label: root::std::string,
              pub __bindgen_padding_3: [u8; 24usize],
              pub printer_technology: root::Slic3r::PrinterTechnology,
              pub category: root::std::string,

              pub __bindgen_padding_3: [u8; 24usize],
              pub printer_technology: root::Slic3r::PrinterTechnology,
              pub category: root::std::string,
              pub __bindgen_padding_4: [u64; 3usize],
              pub tooltip: root::std::string,
              pub __bindgen_padding_5: [u64; 3usize],
                pub __bindgen_padding_4: [u64; 3usize],
              pub tooltip: root::std::string,
              pub __bindgen_padding_5: [u64; 3usize],
              pub sidetext: root::std::string,
              pub __bindgen_padding_6: [u64; 3usize],
              pub cli: root::std::string,
              pub __bindgen_padding_7: [u64; 3usize],
              pub ratio_over: root::Slic3r::t_config_option_key,
              pub multiline: bool,
              pub sidetext: root::std::string,
              pub __bindgen_padding_6: [u64; 3usize],
              pub cli: root::std::string,
              pub __bindgen_padding_7: [u64; 3usize],
              pub ratio_over: root::Slic3r::t_config_option_key,
              pub multiline: bool,
              pub full_width: bool,
              pub is_code: bool,
              pub readonly: bool,
              pub height: ::std::os::raw::c_int,
            pub full_width: bool,
              pub is_code: bool,
              pub readonly: bool,
              pub height: ::std::os::raw::c_int,
              pub width: ::std::os::raw::c_int,
              pub min: ::std::os::raw::c_int,
              pub max: ::std::os::raw::c_int,
                pub width: ::std::os::raw::c_int,
              pub min: ::std::os::raw::c_int,
              pub max: ::std::os::raw::c_int,
              pub mode: root::Slic3r::ConfigOptionMode,
              pub aliases: root::std::vector<root::Slic3r::t_config_option_key>,
              pub shortcut: root::std::vector<root::Slic3r::t_config_option_key>,
              pub enum_values: root::std::vector<root::std::string>,            pub mode: root::Slic3r::ConfigOptionMode,
              pub aliases: root::std::vector<root::Slic3r::t_config_option_key>,
              pub shortcut: root::std::vector<root::Slic3r::t_config_option_key>,
              pub enum_values: root::std::vector<root::std::string>,
              pub enum_labels: root::std::vector<root::std::string>,
              pub enum_keys_map: *const root::Slic3r::t_config_enum_values,
              pub serialization_key_ordinal: root::size_t,
          }
          pub const nocli: &'static [u8; 9usize] = b"~~~noCLI\0";

              pub enum_labels: root::std::vector<root::std::string>,
              pub enum_keys_map: *const root::Slic3r::t_config_enum_values,
              pub serialization_key_ordinal: root::size_t,
          }
          pub const nocli: &'static [u8; 9usize] = b"~~~noCLI\0";
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r15ConfigOptionDef17set_default_valueEPKNS_12ConfigOptionE"]
              pub fn set_default_value(
            extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r15ConfigOptionDef17set_default_valueEPKNS_12ConfigOptionE"]
              pub fn set_default_value(
                  this: *mut root::Slic3r::ConfigOptionDef,
                  ptr: *const root::Slic3r::ConfigOption,
              );
          }
                this: *mut root::Slic3r::ConfigOptionDef,
                  ptr: *const root::Slic3r::ConfigOption,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef19create_empty_optionEv"]
              pub fn create_empty_option(
            extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef19create_empty_optionEv"]
              pub fn create_empty_option(
                  this: *const root::Slic3r::ConfigOptionDef,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {                this: *const root::Slic3r::ConfigOptionDef,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef21create_default_optionEv"]
              pub fn create_default_option(
                  this: *const root::Slic3r::ConfigOptionDef,

              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef21create_default_optionEv"]
              pub fn create_default_option(
                  this: *const root::Slic3r::ConfigOptionDef,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef14has_enum_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn has_enum_value(
                  this: *const root::Slic3r::ConfigOptionDef,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef14has_enum_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn has_enum_value(
                  this: *const root::Slic3r::ConfigOptionDef,
                  value: *const root::std::string,
              ) -> bool;
          }
          extern "C" {                  value: *const root::std::string,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef8cli_argsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn cli_args(
                  this: *const root::Slic3r::ConfigOptionDef,

              #[link_name = "\u{1}_ZNK6Slic3r15ConfigOptionDef8cli_argsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn cli_args(
                  this: *const root::Slic3r::ConfigOptionDef,
                  key: *const root::std::string,
              ) -> root::std::vector<root::std::string>;
          }
                    key: *const root::std::string,
              ) -> root::std::vector<root::std::string>;
          }
          impl ConfigOptionDef {
              #[inline]
              pub unsafe fn set_default_value(&mut self, ptr: *const root::Slic3r::ConfigOption) {
                  set_default_value(self, ptr)        impl ConfigOptionDef {
              #[inline]
              pub unsafe fn set_default_value(&mut self, ptr: *const root::Slic3r::ConfigOption) {
                  set_default_value(self, ptr)
              }
              #[inline]
              pub unsafe fn create_empty_option(&self) -> *mut root::Slic3r::ConfigOption {
  
              }
              #[inline]
              pub unsafe fn create_empty_option(&self) -> *mut root::Slic3r::ConfigOption {
                  create_empty_option(self)
              }
              #[inline]
              pub unsafe fn create_default_option(&self) -> *mut root::Slic3r::ConfigOption {                create_empty_option(self)
              }
              #[inline]
              pub unsafe fn create_default_option(&self) -> *mut root::Slic3r::ConfigOption {
                  create_default_option(self)
              }
              #[inline]

                  create_default_option(self)
              }
              #[inline]
              pub unsafe fn has_enum_value(&self, value: *const root::std::string) -> bool {
                  has_enum_value(self, value)
              }
                pub unsafe fn has_enum_value(&self, value: *const root::std::string) -> bool {
                  has_enum_value(self, value)
              }
              #[inline]
              pub unsafe fn cli_args(
                  &self,
                  key: *const root::std::string,
            #[inline]
              pub unsafe fn cli_args(
                  &self,
                  key: *const root::std::string,
              ) -> root::std::vector<root::std::string> {
                  cli_args(self, key)
              }
          }
          pub type t_optiondef_map = root::std::map<              ) -> root::std::vector<root::std::string> {
                  cli_args(self, key)
              }
          }
          pub type t_optiondef_map = root::std::map<
              root::Slic3r::t_config_option_key,
              root::Slic3r::ConfigOptionDef,
              root::std::less<
  
              root::Slic3r::t_config_option_key,
              root::Slic3r::ConfigOptionDef,
              root::std::less<
                  root::std::basic_string<
                      ::std::os::raw::c_char,
                      root::std::char_traits<::std::os::raw::c_char>,
                      root::std::allocator<::std::os::raw::c_char>,                root::std::basic_string<
                      ::std::os::raw::c_char,
                      root::std::char_traits<::std::os::raw::c_char>,
                      root::std::allocator<::std::os::raw::c_char>,
                  >,
              >,
              root::std::allocator<
                  root::std::pair<
                      root::std::basic_string<
                          ::std::os::raw::c_char,

                  >,
              >,
              root::std::allocator<
                  root::std::pair<
                      root::std::basic_string<
                          ::std::os::raw::c_char,
                          root::std::char_traits<::std::os::raw::c_char>,
                          root::std::allocator<::std::os::raw::c_char>,
                      >,
                            root::std::char_traits<::std::os::raw::c_char>,
                          root::std::allocator<::std::os::raw::c_char>,
                      >,
                      root::Slic3r::ConfigOptionDef,
                  >,
              >,
          >;
                    root::Slic3r::ConfigOptionDef,
                  >,
              >,
          >;
          #[repr(C)]
          pub struct ConfigDef {
              pub options: root::Slic3r::t_optiondef_map,
              pub by_serialization_key_ordinal: root::std::map<          #[repr(C)]
          pub struct ConfigDef {
              pub options: root::Slic3r::t_optiondef_map,
              pub by_serialization_key_ordinal: root::std::map<
                  root::size_t,
                  *const root::Slic3r::ConfigOptionDef,
                  root::std::less<::std::os::raw::c_ulong>,

                  root::size_t,
                  *const root::Slic3r::ConfigOptionDef,
                  root::std::less<::std::os::raw::c_ulong>,
                  root::std::allocator<
                      root::std::pair<::std::os::raw::c_ulong, *const root::Slic3r::ConfigOptionDef>,
                  >,
                    root::std::allocator<
                      root::std::pair<::std::os::raw::c_ulong, *const root::Slic3r::ConfigOptionDef>,
                  >,
              >,
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef3hasERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
            >,
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef3hasERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn has(
                  this: *const root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,
                pub fn has(
                  this: *const root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]            ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn get(
                  this: *const root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,

              pub fn get(
                  this: *const root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOptionDef;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef4keysB5cxx11Ev"]              ) -> *const root::Slic3r::ConfigOptionDef;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef4keysB5cxx11Ev"]
              pub fn keys(
                  this: *const root::Slic3r::ConfigDef,
              ) -> root::std::vector<root::std::string>;
  
              pub fn keys(
                  this: *const root::Slic3r::ConfigDef,
              ) -> root::std::vector<root::std::string>;
          }
          extern "C" {
              #[doc = " Iterate through all of the CLI options and write them to a stream."]
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef14print_cli_helpERSobSt8functionIFbRKNS_15ConfigOptionDefEEE"]
              pub fn print_cli_help(
                  this: *const root::Slic3r::ConfigDef,
          }
          extern "C" {
              #[doc = " Iterate through all of the CLI options and write them to a stream."]
              #[link_name = "\u{1}_ZNK6Slic3r9ConfigDef14print_cli_helpERSobSt8functionIFbRKNS_15ConfigOptionDefEEE"]
              pub fn print_cli_help(
                  this: *const root::Slic3r::ConfigDef,
                  out: *mut root::std::ostream,
                  show_defaults: bool,
                  filter: [u64; 4usize],
              ) -> *mut root::std::ostream;
          }
                out: *mut root::std::ostream,
                  show_defaults: bool,
                  filter: [u64; 4usize],
              ) -> *mut root::std::ostream;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r9ConfigDef3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_16ConfigOptionTypeE"]
              pub fn add(
            extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r9ConfigDef3addERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_16ConfigOptionTypeE"]
              pub fn add(
                  this: *mut root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  type_: root::Slic3r::ConfigOptionType,
              ) -> *mut root::Slic3r::ConfigOptionDef;                this: *mut root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  type_: root::Slic3r::ConfigOptionType,
              ) -> *mut root::Slic3r::ConfigOptionDef;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r9ConfigDef12add_nullableERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_16ConfigOptionTypeE"]

          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r9ConfigDef12add_nullableERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_16ConfigOptionTypeE"]
              pub fn add_nullable(
                  this: *mut root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,
                pub fn add_nullable(
                  this: *mut root::Slic3r::ConfigDef,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  type_: root::Slic3r::ConfigOptionType,
              ) -> *mut root::Slic3r::ConfigOptionDef;
          }
          impl ConfigDef {                type_: root::Slic3r::ConfigOptionType,
              ) -> *mut root::Slic3r::ConfigOptionDef;
          }
          impl ConfigDef {
              #[inline]
              pub unsafe fn has(&self, opt_key: *const root::Slic3r::t_config_option_key) -> bool {
                  has(self, opt_key)

              #[inline]
              pub unsafe fn has(&self, opt_key: *const root::Slic3r::t_config_option_key) -> bool {
                  has(self, opt_key)
              }
              #[inline]
              pub unsafe fn get(
                  &self,              }
              #[inline]
              pub unsafe fn get(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOptionDef {
                  get(self, opt_key)

                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOptionDef {
                  get(self, opt_key)
              }
              #[inline]
              pub unsafe fn keys(&self) -> root::std::vector<root::std::string> {
                  keys(self)              }
              #[inline]
              pub unsafe fn keys(&self) -> root::std::vector<root::std::string> {
                  keys(self)
              }
              #[inline]
              pub unsafe fn print_cli_help(

              }
              #[inline]
              pub unsafe fn print_cli_help(
                  &self,
                  out: *mut root::std::ostream,
                  show_defaults: bool,
                  filter: [u64; 4usize],
              ) -> *mut root::std::ostream {
                  print_cli_help(self, out, show_defaults, filter)
                    &self,
                  out: *mut root::std::ostream,
                  show_defaults: bool,
                  filter: [u64; 4usize],
              ) -> *mut root::std::ostream {
                  print_cli_help(self, out, show_defaults, filter)
              }
              #[inline]
              pub unsafe fn add(
                  &mut self,            }
              #[inline]
              pub unsafe fn add(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  type_: root::Slic3r::ConfigOptionType,
              ) -> *mut root::Slic3r::ConfigOptionDef {

                  opt_key: *const root::Slic3r::t_config_option_key,
                  type_: root::Slic3r::ConfigOptionType,
              ) -> *mut root::Slic3r::ConfigOptionDef {
                  add(self, opt_key, type_)
              }
              #[inline]
              pub unsafe fn add_nullable(                  add(self, opt_key, type_)
              }
              #[inline]
              pub unsafe fn add_nullable(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  type_: root::Slic3r::ConfigOptionType,

                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  type_: root::Slic3r::ConfigOptionType,
              ) -> *mut root::Slic3r::ConfigOptionDef {
                  add_nullable(self, opt_key, type_)
              }
          }
                ) -> *mut root::Slic3r::ConfigOptionDef {
                  add_nullable(self, opt_key, type_)
              }
          }
          #[repr(C)]
          pub struct ConfigOptionResolver__bindgen_vtable(::std::os::raw::c_void);
          #[repr(C)]
          pub struct ConfigOptionResolver {
        #[repr(C)]
          pub struct ConfigOptionResolver__bindgen_vtable(::std::os::raw::c_void);
          #[repr(C)]
          pub struct ConfigOptionResolver {
              pub vtable_: *const ConfigOptionResolver__bindgen_vtable,
          }
          extern "C" {
                pub vtable_: *const ConfigOptionResolver__bindgen_vtable,
          }
          extern "C" {
              #[bindgen_original_name("has")]
              #[link_name = "\u{1}_ZNK6Slic3r20ConfigOptionResolver3hasERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn has1(
                  this: *const root::Slic3r::ConfigOptionResolver,            #[bindgen_original_name("has")]
              #[link_name = "\u{1}_ZNK6Slic3r20ConfigOptionResolver3hasERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn has1(
                  this: *const root::Slic3r::ConfigOptionResolver,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool;
          }
  
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r20ConfigOptionResolver6optionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn option(
                  this: *const root::Slic3r::ConfigOptionResolver,        extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r20ConfigOptionResolver6optionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn option(
                  this: *const root::Slic3r::ConfigOptionResolver,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption;
          }

                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r20ConfigOptionResolver12option_throwERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn option_throw(
                  this: *const root::Slic3r::ConfigOptionResolver,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption;
            extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r20ConfigOptionResolver12option_throwERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn option_throw(
                  this: *const root::Slic3r::ConfigOptionResolver,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r20ConfigOptionResolverC2Ev"]
              pub fn ConfigOptionResolver(this: *mut root::Slic3r::ConfigOptionResolver);
        }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r20ConfigOptionResolverC2Ev"]
              pub fn ConfigOptionResolver(this: *mut root::Slic3r::ConfigOptionResolver);
          }
          impl ConfigOptionResolver {
              #[inline]
              pub unsafe fn has(&self, opt_key: *const root::Slic3r::t_config_option_key) -> bool {          }
          impl ConfigOptionResolver {
              #[inline]
              pub unsafe fn has(&self, opt_key: *const root::Slic3r::t_config_option_key) -> bool {
                  has(self, opt_key)
              }
              #[inline]
  
                  has(self, opt_key)
              }
              #[inline]
              pub unsafe fn option(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption {
            pub unsafe fn option(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption {
                  option(self, opt_key)
              }
              #[inline]
              pub unsafe fn option_throw(                  option(self, opt_key)
              }
              #[inline]
              pub unsafe fn option_throw(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption {

                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption {
                  option_throw(self, opt_key)
              }
              #[inline]
              pub unsafe fn new() -> Self {                  option_throw(self, opt_key)
              }
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  ConfigOptionResolver(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()

                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  ConfigOptionResolver(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r20ConfigOptionResolverD1Ev"]
                }
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r20ConfigOptionResolverD1Ev"]
              pub fn ConfigOptionResolver_destructor(this: *mut root::Slic3r::ConfigOptionResolver);
          }
          #[repr(C)]
          pub struct ConfigBase {
            pub fn ConfigOptionResolver_destructor(this: *mut root::Slic3r::ConfigOptionResolver);
          }
          #[repr(C)]
          pub struct ConfigBase {
              pub _base: root::Slic3r::ConfigOptionResolver,
          }
          #[repr(C)]
          pub struct SetDeserializeItem {              pub _base: root::Slic3r::ConfigOptionResolver,
          }
          #[repr(C)]
          pub struct SetDeserializeItem {
              pub opt_key: root::std::string,
              pub __bindgen_padding_0: [u64; 3usize],
              pub opt_value: root::std::string,
              pub __bindgen_padding_1: [u8; 24usize],
              pub append: bool,
          }
          extern "C" {
  
              pub opt_key: root::std::string,
              pub __bindgen_padding_0: [u64; 3usize],
              pub opt_value: root::std::string,
              pub __bindgen_padding_1: [u8; 24usize],
              pub append: bool,
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcS3_b"]
              pub fn SetDeserializeItem(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
            #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcS3_b"]
              pub fn SetDeserializeItem(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
                  opt_value: *const ::std::os::raw::c_char,
                  append: bool,
              );
                    opt_value: *const ::std::os::raw::c_char,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_b"]        }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_b"]
              pub fn SetDeserializeItem1(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,

              pub fn SetDeserializeItem1(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,
                  opt_value: *const root::std::string,
                  append: bool,
              );
          }                  opt_value: *const root::std::string,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcbb"]

          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcbb"]
              pub fn SetDeserializeItem2(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
                pub fn SetDeserializeItem2(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
                  value: bool,
                  append: bool,
              );
          }
                value: bool,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbb"]
            extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbb"]
              pub fn SetDeserializeItem3(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,
                  value: bool,
            pub fn SetDeserializeItem3(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,
                  value: bool,
                  append: bool,
              );
          }
          extern "C" {                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcib"]
              pub fn SetDeserializeItem4(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
                  value: ::std::os::raw::c_int,
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcib"]
              pub fn SetDeserializeItem4(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
                  value: ::std::os::raw::c_int,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEib"]
              pub fn SetDeserializeItem5(
                  this: *mut root::Slic3r::SetDeserializeItem,

              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEib"]
              pub fn SetDeserializeItem5(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                  append: bool,
                    opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
            );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcfb"]
              pub fn SetDeserializeItem6(
                  this: *mut root::Slic3r::SetDeserializeItem,
                #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcfb"]
              pub fn SetDeserializeItem6(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
                  value: f32,
                  append: bool,
              );                opt_key: *const ::std::os::raw::c_char,
                  value: f32,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]

          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfb"]
              pub fn SetDeserializeItem7(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfb"]
              pub fn SetDeserializeItem7(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,
                  value: f32,
                  append: bool,
              );

                  value: f32,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcdb"]          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1EPKcdb"]
              pub fn SetDeserializeItem8(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,

              pub fn SetDeserializeItem8(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const ::std::os::raw::c_char,
                  value: f64,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
                    value: f64,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("SetDeserializeItem")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdb"]
              pub fn SetDeserializeItem9(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,
            #[link_name = "\u{1}_ZN6Slic3r10ConfigBase18SetDeserializeItemC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdb"]
              pub fn SetDeserializeItem9(
                  this: *mut root::Slic3r::SetDeserializeItem,
                  opt_key: *const root::std::string,
                  value: f64,
                  append: bool,
              );
          }                  value: f64,
                  append: bool,
              );
          }
          impl SetDeserializeItem {
              #[inline]
              pub unsafe fn new(
  
          impl SetDeserializeItem {
              #[inline]
              pub unsafe fn new(
                  opt_key: *const ::std::os::raw::c_char,
                  opt_value: *const ::std::os::raw::c_char,
                  append: bool,
              ) -> Self {                opt_key: *const ::std::os::raw::c_char,
                  opt_value: *const ::std::os::raw::c_char,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem(__bindgen_tmp.as_mut_ptr(), opt_key, opt_value, append);
                  __bindgen_tmp.assume_init()
              }

                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem(__bindgen_tmp.as_mut_ptr(), opt_key, opt_value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new1(
                  opt_key: *const root::std::string,
                  opt_value: *const root::std::string,              #[inline]
              pub unsafe fn new1(
                  opt_key: *const root::std::string,
                  opt_value: *const root::std::string,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();

                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem1(__bindgen_tmp.as_mut_ptr(), opt_key, opt_value, append);
                  __bindgen_tmp.assume_init()
              }
                    SetDeserializeItem1(__bindgen_tmp.as_mut_ptr(), opt_key, opt_value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new2(
                  opt_key: *const ::std::os::raw::c_char,
                  value: bool,            #[inline]
              pub unsafe fn new2(
                  opt_key: *const ::std::os::raw::c_char,
                  value: bool,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();

                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem2(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]                  SetDeserializeItem2(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new3(
                  opt_key: *const root::std::string,
                  value: bool,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();

              pub unsafe fn new3(
                  opt_key: *const root::std::string,
                  value: bool,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem3(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
                    SetDeserializeItem3(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new4(
                  opt_key: *const ::std::os::raw::c_char,
                  value: ::std::os::raw::c_int,
            #[inline]
              pub unsafe fn new4(
                  opt_key: *const ::std::os::raw::c_char,
                  value: ::std::os::raw::c_int,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                    append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem4(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
                SetDeserializeItem4(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new5(
                  opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                pub unsafe fn new5(
                  opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem5(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem5(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
                    __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new6(
                  opt_key: *const ::std::os::raw::c_char,
                  value: f32,
                  append: bool,
            pub unsafe fn new6(
                  opt_key: *const ::std::os::raw::c_char,
                  value: f32,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem6(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem6(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new7(
                  opt_key: *const root::std::string,

              #[inline]
              pub unsafe fn new7(
                  opt_key: *const root::std::string,
                  value: f32,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();                  value: f32,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem7(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new8(
                  opt_key: *const ::std::os::raw::c_char,
                  SetDeserializeItem7(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new8(
                  opt_key: *const ::std::os::raw::c_char,
                  value: f64,
                  append: bool,
              ) -> Self {
  
                  value: f64,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem8(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }                let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem8(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new9(
                  opt_key: *const root::std::string,
  
              #[inline]
              pub unsafe fn new9(
                  opt_key: *const root::std::string,
                  value: f64,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                value: f64,
                  append: bool,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  SetDeserializeItem9(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
                    SetDeserializeItem9(__bindgen_tmp.as_mut_ptr(), opt_key, value, append);
                  __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
              #[bindgen_original_name("option")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase6optionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
        }
          extern "C" {
              #[bindgen_original_name("option")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase6optionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
              pub fn option1(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
                pub fn option1(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
                create: bool,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[bindgen_original_name("option_throw")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase12option_throwERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
              pub fn option_throw1(
                #[bindgen_original_name("option_throw")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase12option_throwERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
              pub fn option_throw1(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption;
                this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase5applyERKS0_b"]
            }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase5applyERKS0_b"]
              pub fn apply(
                  this: *mut root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
                  ignore_nonexistent: bool,
              );
          }
          extern "C" {            pub fn apply(
                  this: *mut root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
                  ignore_nonexistent: bool,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase10apply_onlyERKS0_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEb"]
              pub fn apply_only(
                  this: *mut root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,

              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase10apply_onlyERKS0_RKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEb"]
              pub fn apply_only(
                  this: *mut root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
                  keys: *const root::Slic3r::t_config_option_keys,
                  ignore_nonexistent: bool,
              );
          }                  keys: *const root::Slic3r::t_config_option_keys,
                  ignore_nonexistent: bool,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase6equalsERKS0_"]
              pub fn equals(
  
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase6equalsERKS0_"]
              pub fn equals(
                  this: *const root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
              ) -> bool;
          }
                this: *const root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase4diffB5cxx11ERKS0_"]
              pub fn diff(
            extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase4diffB5cxx11ERKS0_"]
              pub fn diff(
                  this: *const root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys;
          }
                this: *const root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase5equalB5cxx11ERKS0_"]
              pub fn equal(
            extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase5equalB5cxx11ERKS0_"]
              pub fn equal(
                  this: *const root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys;
          }
                this: *const root::Slic3r::ConfigBase,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13opt_serializeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_serialize(
                  this: *const root::Slic3r::ConfigBase,          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13opt_serializeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_serialize(
                  this: *const root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> root::std::string;
          }

                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> root::std::string;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbb"]
              pub fn set(
                  this: *mut root::Slic3r::ConfigBase,          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbb"]
              pub fn set(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::std::string,
                  value: bool,
                  create: bool,
              );
          }
          extern "C" {

                  opt_key: *const root::std::string,
                  value: bool,
                  create: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("set")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEib"]
              pub fn set1(
                  this: *mut root::Slic3r::ConfigBase,              #[bindgen_original_name("set")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEib"]
              pub fn set1(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                  create: bool,

                  opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                  create: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("set")]              );
          }
          extern "C" {
              #[bindgen_original_name("set")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdb"]
              pub fn set2(
                  this: *mut root::Slic3r::ConfigBase,

              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdb"]
              pub fn set2(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::std::string,
                  value: f64,
                  create: bool,
              );
          }                  opt_key: *const root::std::string,
                  value: f64,
                  create: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("set")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcb"]

          extern "C" {
              #[bindgen_original_name("set")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcb"]
              pub fn set3(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::std::string,
                  value: *const ::std::os::raw::c_char,              pub fn set3(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::std::string,
                  value: *const ::std::os::raw::c_char,
                  create: bool,
              );
          }
  
                  create: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("set")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b"]
              pub fn set4(        extern "C" {
              #[bindgen_original_name("set")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase3setERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b"]
              pub fn set4(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::std::string,
                  value: *const root::std::string,
  
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::std::string,
                  value: *const root::std::string,
                  create: bool,
              );
          }
          extern "C" {
                create: bool,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase23set_deserialize_nothrowERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b"]
              pub fn set_deserialize_nothrow(
                  this: *mut root::Slic3r::ConfigBase,
                #[link_name = "\u{1}_ZN6Slic3r10ConfigBase23set_deserialize_nothrowERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b"]
              pub fn set_deserialize_nothrow(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key_src: *const root::Slic3r::t_config_option_key,
                  value_src: *const root::std::string,
                  append: bool,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase15set_deserializeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b"]                opt_key_src: *const root::Slic3r::t_config_option_key,
                  value_src: *const root::std::string,
                  append: bool,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase15set_deserializeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_b"]
              pub fn set_deserialize(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,

              pub fn set_deserialize(
                  this: *mut root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  str_: *const root::std::string,
                  append: bool,
              );
          }                  str_: *const root::std::string,
                  append: bool,
              );
          }
          extern "C" {
              #[bindgen_original_name("set_deserialize")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase15set_deserializeESt16initializer_listINS0_18SetDeserializeItemEE"]

          extern "C" {
              #[bindgen_original_name("set_deserialize")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase15set_deserializeESt16initializer_listINS0_18SetDeserializeItemEE"]
              pub fn set_deserialize1(
                  this: *mut root::Slic3r::ConfigBase,
                  items: root::std::initializer_list<root::Slic3r::SetDeserializeItem>,
              );              pub fn set_deserialize1(
                  this: *mut root::Slic3r::ConfigBase,
                  items: root::std::initializer_list<root::Slic3r::SetDeserializeItem>,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13get_abs_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]

          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13get_abs_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn get_abs_value(
                  this: *const root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> f64;              pub fn get_abs_value(
                  this: *const root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> f64;
          }
          extern "C" {
              #[bindgen_original_name("get_abs_value")]

          }
          extern "C" {
              #[bindgen_original_name("get_abs_value")]
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13get_abs_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd"]
              pub fn get_abs_value1(
                  this: *const root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
                #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13get_abs_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEd"]
              pub fn get_abs_value1(
                  this: *const root::Slic3r::ConfigBase,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  ratio_over: f64,
              ) -> f64;
          }
          extern "C" {
                ratio_over: f64,
              ) -> f64;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase7setenv_Ev"]
              pub fn setenv_(this: *const root::Slic3r::ConfigBase);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase4loadERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn load(this: *mut root::Slic3r::ConfigBase, file: *const root::std::string);
                #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase7setenv_Ev"]
              pub fn setenv_(this: *const root::Slic3r::ConfigBase);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase4loadERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn load(this: *mut root::Slic3r::ConfigBase, file: *const root::std::string);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase13load_from_iniERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn load_from_ini(
        }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase13load_from_iniERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn load_from_ini(
                  this: *mut root::Slic3r::ConfigBase,
                  file: *const root::std::string,
              );
                    this: *mut root::Slic3r::ConfigBase,
                  file: *const root::std::string,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase20load_from_gcode_fileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn load_from_gcode_file(        }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase20load_from_gcode_fileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn load_from_gcode_file(
                  this: *mut root::Slic3r::ConfigBase,
                  file: *const root::std::string,
              );

                  this: *mut root::Slic3r::ConfigBase,
                  file: *const root::std::string,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase22load_from_gcode_stringEPKc"]
              pub fn load_from_gcode_string(          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase22load_from_gcode_stringEPKc"]
              pub fn load_from_gcode_string(
                  this: *mut root::Slic3r::ConfigBase,
                  str_: *const ::std::os::raw::c_char,
              ) -> root::size_t;

                  this: *mut root::Slic3r::ConfigBase,
                  str_: *const ::std::os::raw::c_char,
              ) -> root::size_t;
          }
          extern "C" {
              #[bindgen_original_name("load")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase4loadERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEE"]          }
          extern "C" {
              #[bindgen_original_name("load")]
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase4loadERKN5boost13property_tree11basic_ptreeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_St4lessIS9_EEE"]
              pub fn load1(
                  this: *mut root::Slic3r::ConfigBase,
                  tree: *const root::boost::property_tree::ptree,

              pub fn load1(
                  this: *mut root::Slic3r::ConfigBase,
                  tree: *const root::boost::property_tree::ptree,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase4saveERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase4saveERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn save(this: *const root::Slic3r::ConfigBase, file: *const root::std::string);
          }
          extern "C" {

              pub fn save(this: *const root::Slic3r::ConfigBase, file: *const root::std::string);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBase14null_nullablesEv"]
              pub fn null_nullables(this: *mut root::Slic3r::ConfigBase);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBaseC2Ev"]
              pub fn ConfigBase(this: *mut root::Slic3r::ConfigBase);
                #[link_name = "\u{1}_ZN6Slic3r10ConfigBase14null_nullablesEv"]
              pub fn null_nullables(this: *mut root::Slic3r::ConfigBase);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBaseC2Ev"]
              pub fn ConfigBase(this: *mut root::Slic3r::ConfigBase);
          }
          impl ConfigBase {
              #[inline]
              pub unsafe fn option(
        }
          impl ConfigBase {
              #[inline]
              pub unsafe fn option(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption {                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption {
                  option(self, opt_key, create)
              }
              #[inline]
              pub unsafe fn option_throw(
  
                  option(self, opt_key, create)
              }
              #[inline]
              pub unsafe fn option_throw(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption {
                &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption {
                  option_throw(self, opt_key, create)
              }
              #[inline]
              pub unsafe fn apply(
                  &mut self,
                  other: *const root::Slic3r::ConfigBase,
                  ignore_nonexistent: bool,                  option_throw(self, opt_key, create)
              }
              #[inline]
              pub unsafe fn apply(
                  &mut self,
                  other: *const root::Slic3r::ConfigBase,
                  ignore_nonexistent: bool,
              ) {
                  apply(self, other, ignore_nonexistent)
              }
  
              ) {
                  apply(self, other, ignore_nonexistent)
              }
              #[inline]
              pub unsafe fn apply_only(
                  &mut self,
                  other: *const root::Slic3r::ConfigBase,
            #[inline]
              pub unsafe fn apply_only(
                  &mut self,
                  other: *const root::Slic3r::ConfigBase,
                  keys: *const root::Slic3r::t_config_option_keys,
                  ignore_nonexistent: bool,
              ) {
                    keys: *const root::Slic3r::t_config_option_keys,
                  ignore_nonexistent: bool,
              ) {
                  apply_only(self, other, keys, ignore_nonexistent)
              }
              #[inline]
              pub unsafe fn equals(&self, other: *const root::Slic3r::ConfigBase) -> bool {
                apply_only(self, other, keys, ignore_nonexistent)
              }
              #[inline]
              pub unsafe fn equals(&self, other: *const root::Slic3r::ConfigBase) -> bool {
                  equals(self, other)
              }
              #[inline]
                    equals(self, other)
              }
              #[inline]
              pub unsafe fn diff(
                  &self,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys {            pub unsafe fn diff(
                  &self,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys {
                  diff(self, other)
              }
              #[inline]

                  diff(self, other)
              }
              #[inline]
              pub unsafe fn equal(
                  &self,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys {
                  equal(self, other)
              }
              #[inline]              pub unsafe fn equal(
                  &self,
                  other: *const root::Slic3r::ConfigBase,
              ) -> root::Slic3r::t_config_option_keys {
                  equal(self, other)
              }
              #[inline]
              pub unsafe fn opt_serialize(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,

              pub unsafe fn opt_serialize(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> root::std::string {
                  opt_serialize(self, opt_key)
              }
              #[inline]              ) -> root::std::string {
                  opt_serialize(self, opt_key)
              }
              #[inline]
              pub unsafe fn set(
                  &mut self,
                  opt_key: *const root::std::string,
  
              pub unsafe fn set(
                  &mut self,
                  opt_key: *const root::std::string,
                  value: bool,
                  create: bool,
              ) {
                  set(self, opt_key, value, create)
                  value: bool,
                  create: bool,
              ) {
                  set(self, opt_key, value, create)
              }
              #[inline]
              pub unsafe fn set1(
                  &mut self,
            }
              #[inline]
              pub unsafe fn set1(
                  &mut self,
                  opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                  create: bool,
              ) {
                  set1(self, opt_key, value, create)                  opt_key: *const root::std::string,
                  value: ::std::os::raw::c_int,
                  create: bool,
              ) {
                  set1(self, opt_key, value, create)
              }
              #[inline]
              pub unsafe fn set2(
                  &mut self,
              }
              #[inline]
              pub unsafe fn set2(
                  &mut self,
                  opt_key: *const root::std::string,
                  value: f64,
                  create: bool,
              ) {
                  opt_key: *const root::std::string,
                  value: f64,
                  create: bool,
              ) {
                  set2(self, opt_key, value, create)
              }
              #[inline]
              pub unsafe fn set3(
                  set2(self, opt_key, value, create)
              }
              #[inline]
              pub unsafe fn set3(
                  &mut self,
                  opt_key: *const root::std::string,
                  value: *const ::std::os::raw::c_char,
                  create: bool,
                  &mut self,
                  opt_key: *const root::std::string,
                  value: *const ::std::os::raw::c_char,
                  create: bool,
              ) {
                  set3(self, opt_key, value, create)
              }
              #[inline]
              ) {
                  set3(self, opt_key, value, create)
              }
              #[inline]
              pub unsafe fn set4(
                  &mut self,
                  opt_key: *const root::std::string,
                  value: *const root::std::string,
              pub unsafe fn set4(
                  &mut self,
                  opt_key: *const root::std::string,
                  value: *const root::std::string,
                  create: bool,
              ) {
                  set4(self, opt_key, value, create)
              }
                  create: bool,
              ) {
                  set4(self, opt_key, value, create)
              }
              #[inline]
              pub unsafe fn set_deserialize_nothrow(
                  &mut self,
                  opt_key_src: *const root::Slic3r::t_config_option_key,
                  value_src: *const root::std::string,
                  append: bool,
  
              #[inline]
              pub unsafe fn set_deserialize_nothrow(
                  &mut self,
                  opt_key_src: *const root::Slic3r::t_config_option_key,
                  value_src: *const root::std::string,
                  append: bool,
              ) -> bool {
                  set_deserialize_nothrow(self, opt_key_src, value_src, append)
              }
              #[inline]
              ) -> bool {
                  set_deserialize_nothrow(self, opt_key_src, value_src, append)
              }
              #[inline]
              pub unsafe fn set_deserialize(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  str_: *const root::std::string,
            pub unsafe fn set_deserialize(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  str_: *const root::std::string,
                  append: bool,
              ) {
                  set_deserialize(self, opt_key, str_, append)
              }                  append: bool,
              ) {
                  set_deserialize(self, opt_key, str_, append)
              }
              #[inline]
              pub unsafe fn set_deserialize1(
                  &mut self,
  
              #[inline]
              pub unsafe fn set_deserialize1(
                  &mut self,
                  items: root::std::initializer_list<root::Slic3r::SetDeserializeItem>,
              ) {
                  set_deserialize1(self, items)
              }
                items: root::std::initializer_list<root::Slic3r::SetDeserializeItem>,
              ) {
                  set_deserialize1(self, items)
              }
              #[inline]
              pub unsafe fn get_abs_value(
                  &self,
                #[inline]
              pub unsafe fn get_abs_value(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> f64 {
                  get_abs_value(self, opt_key)
              }
                opt_key: *const root::Slic3r::t_config_option_key,
              ) -> f64 {
                  get_abs_value(self, opt_key)
              }
              #[inline]
              pub unsafe fn get_abs_value1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                #[inline]
              pub unsafe fn get_abs_value1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  ratio_over: f64,
              ) -> f64 {
                  get_abs_value1(self, opt_key, ratio_over)
              }
                ratio_over: f64,
              ) -> f64 {
                  get_abs_value1(self, opt_key, ratio_over)
              }
              #[inline]
              pub unsafe fn setenv_(&self) {
                  setenv_(self)
                #[inline]
              pub unsafe fn setenv_(&self) {
                  setenv_(self)
              }
              #[inline]
              pub unsafe fn load(&mut self, file: *const root::std::string) {
                  load(self, file)            }
              #[inline]
              pub unsafe fn load(&mut self, file: *const root::std::string) {
                  load(self, file)
              }
              #[inline]
              pub unsafe fn load_from_ini(&mut self, file: *const root::std::string) {

              }
              #[inline]
              pub unsafe fn load_from_ini(&mut self, file: *const root::std::string) {
                  load_from_ini(self, file)
              }
              #[inline]
              pub unsafe fn load_from_gcode_file(&mut self, file: *const root::std::string) {                  load_from_ini(self, file)
              }
              #[inline]
              pub unsafe fn load_from_gcode_file(&mut self, file: *const root::std::string) {
                  load_from_gcode_file(self, file)
              }
              #[inline]
              pub unsafe fn load_from_gcode_string(
                  &mut self,
                  str_: *const ::std::os::raw::c_char,

                  load_from_gcode_file(self, file)
              }
              #[inline]
              pub unsafe fn load_from_gcode_string(
                  &mut self,
                  str_: *const ::std::os::raw::c_char,
              ) -> root::size_t {
                  load_from_gcode_string(self, str_)
              }
              #[inline]              ) -> root::size_t {
                  load_from_gcode_string(self, str_)
              }
              #[inline]
              pub unsafe fn load1(&mut self, tree: *const root::boost::property_tree::ptree) {
                  load1(self, tree)
              }

              pub unsafe fn load1(&mut self, tree: *const root::boost::property_tree::ptree) {
                  load1(self, tree)
              }
              #[inline]
              pub unsafe fn save(&self, file: *const root::std::string) {
                  save(self, file)
                #[inline]
              pub unsafe fn save(&self, file: *const root::std::string) {
                  save(self, file)
              }
              #[inline]
              pub unsafe fn null_nullables(&mut self) {
                  null_nullables(self)
            }
              #[inline]
              pub unsafe fn null_nullables(&mut self) {
                  null_nullables(self)
              }
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();              }
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  ConfigBase(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
              }
  
                  ConfigBase(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBaseD1Ev"]
              pub fn ConfigBase_destructor(this: *mut root::Slic3r::ConfigBase);        }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r10ConfigBaseD1Ev"]
              pub fn ConfigBase_destructor(this: *mut root::Slic3r::ConfigBase);
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13handle_legacyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_"]

          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r10ConfigBase13handle_legacyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_"]
              pub fn handle_legacy(
                  this: *mut ::std::os::raw::c_void,
                  arg1: *mut root::Slic3r::t_config_option_key,
                  arg2: *mut root::std::string,              pub fn handle_legacy(
                  this: *mut ::std::os::raw::c_void,
                  arg1: *mut root::Slic3r::t_config_option_key,
                  arg2: *mut root::std::string,
              );
          }
          #[repr(C)]
          pub struct DynamicConfig {
              pub __bindgen_padding_0: u64,
              );
          }
          #[repr(C)]
          pub struct DynamicConfig {
              pub __bindgen_padding_0: u64,
              pub options: root::std::map<
                  root::Slic3r::t_config_option_key,
                  root::std::unique_ptr<root::Slic3r::ConfigOption>,
  
              pub options: root::std::map<
                  root::Slic3r::t_config_option_key,
                  root::std::unique_ptr<root::Slic3r::ConfigOption>,
                  root::std::less<
                      root::std::basic_string<
                          ::std::os::raw::c_char,
                          root::std::char_traits<::std::os::raw::c_char>,
                root::std::less<
                      root::std::basic_string<
                          ::std::os::raw::c_char,
                          root::std::char_traits<::std::os::raw::c_char>,
                          root::std::allocator<::std::os::raw::c_char>,
                      >,
                  >,
                  root::std::allocator<
                      root::std::pair<
                          root::std::basic_string<
                            root::std::allocator<::std::os::raw::c_char>,
                      >,
                  >,
                  root::std::allocator<
                      root::std::pair<
                          root::std::basic_string<
                              ::std::os::raw::c_char,
                              root::std::char_traits<::std::os::raw::c_char>,
                              root::std::allocator<::std::os::raw::c_char>,
                          >,
                            ::std::os::raw::c_char,
                              root::std::char_traits<::std::os::raw::c_char>,
                              root::std::allocator<::std::os::raw::c_char>,
                          >,
                          root::std::unique_ptr<root::Slic3r::ConfigOption>,
                      >,
                  >,
              >,                          root::std::unique_ptr<root::Slic3r::ConfigOption>,
                      >,
                  >,
              >,
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig4swapERS0_"]
  
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig4swapERS0_"]
              pub fn swap(
                  this: *mut root::Slic3r::DynamicConfig,
                  other: *mut root::Slic3r::DynamicConfig,
              );
            pub fn swap(
                  this: *mut root::Slic3r::DynamicConfig,
                  other: *mut root::Slic3r::DynamicConfig,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig5clearEv"]
              pub fn clear(this: *mut root::Slic3r::DynamicConfig);
          }          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig5clearEv"]
              pub fn clear(this: *mut root::Slic3r::DynamicConfig);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig5eraseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn erase(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig5eraseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn erase(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig18remove_nil_optionsEv"]

              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig18remove_nil_optionsEv"]
              pub fn remove_nil_options(this: *mut root::Slic3r::DynamicConfig) -> root::size_t;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig5emptyEv"]              pub fn remove_nil_options(this: *mut root::Slic3r::DynamicConfig) -> root::size_t;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig5emptyEv"]
              pub fn empty(this: *const root::Slic3r::DynamicConfig) -> bool;
          }
          extern "C" {
  
              pub fn empty(this: *const root::Slic3r::DynamicConfig) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig13set_key_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_12ConfigOptionE"]
              pub fn set_key_value(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::std::string,
            #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig13set_key_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_12ConfigOptionE"]
              pub fn set_key_value(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::std::string,
                  opt: *mut root::Slic3r::ConfigOption,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
              pub fn opt_string(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                    opt: *mut root::Slic3r::ConfigOption,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
              pub fn opt_string(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::std::string;
          }
          extern "C" {
              #[bindgen_original_name("opt_string")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]                create: bool,
              ) -> *mut root::std::string;
          }
          extern "C" {
              #[bindgen_original_name("opt_string")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_string1(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::std::string;
          }
          extern "C" {
  
              pub fn opt_string1(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::std::string;
          }
          extern "C" {
              #[bindgen_original_name("opt_string")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_string2(
                  this: *mut root::Slic3r::DynamicConfig,
            #[bindgen_original_name("opt_string")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_string2(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut root::std::string;
          }
                    opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut root::std::string;
          }
          extern "C" {
              #[bindgen_original_name("opt_string")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_string3(
                  this: *const root::Slic3r::DynamicConfig,
          extern "C" {
              #[bindgen_original_name("opt_string")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig10opt_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_string3(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *const root::std::string;
          }
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *const root::std::string;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_float(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *mut f64;
          }
          extern "C" {
              #[bindgen_original_name("opt_float")]
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_float(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *mut f64;
          }
          extern "C" {
              #[bindgen_original_name("opt_float")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_float1(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
            #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_float1(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const f64;
          }
          extern "C" {
              #[bindgen_original_name("opt_float")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]              ) -> *const f64;
          }
          extern "C" {
              #[bindgen_original_name("opt_float")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_float2(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut f64;

              pub fn opt_float2(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut f64;
          }
          extern "C" {
              #[bindgen_original_name("opt_float")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
          }
          extern "C" {
              #[bindgen_original_name("opt_float")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig9opt_floatERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_float3(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                pub fn opt_float3(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *const f64;
          }
          extern "C" {
                idx: ::std::os::raw::c_uint,
              ) -> *const f64;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_int(
                  this: *mut root::Slic3r::DynamicConfig,
                #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_int(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *mut ::std::os::raw::c_int;
          }
          extern "C" {
                opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *mut ::std::os::raw::c_int;
          }
          extern "C" {
              #[bindgen_original_name("opt_int")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_int1(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> ::std::os::raw::c_int;
                #[bindgen_original_name("opt_int")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_int1(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> ::std::os::raw::c_int;
          }
          extern "C" {
              #[bindgen_original_name("opt_int")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
        }
          extern "C" {
              #[bindgen_original_name("opt_int")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_int2(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut ::std::os::raw::c_int;
              pub fn opt_int2(
                  this: *mut root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut ::std::os::raw::c_int;
          }
          extern "C" {
              #[bindgen_original_name("opt_int")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]          }
          extern "C" {
              #[bindgen_original_name("opt_int")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig7opt_intERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_int3(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,

              pub fn opt_int3(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> ::std::os::raw::c_int;
          }
          extern "C" {
                  idx: ::std::os::raw::c_uint,
              ) -> ::std::os::raw::c_int;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig8opt_boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_bool(
                  this: *const root::Slic3r::DynamicConfig,
                #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig8opt_boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn opt_bool(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool;
          }
          extern "C" {
                opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool;
          }
          extern "C" {
              #[bindgen_original_name("opt_bool")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig8opt_boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_bool1(
                #[bindgen_original_name("opt_bool")]
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig8opt_boolERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEj"]
              pub fn opt_bool1(
                  this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> bool;
                this: *const root::Slic3r::DynamicConfig,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig8read_cliERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEPS9_SC_"]
              pub fn read_cli(
                  this: *mut root::Slic3r::DynamicConfig,
                  tokens: *const root::std::vector<root::std::string>,
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig8read_cliERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEPS9_SC_"]
              pub fn read_cli(
                  this: *mut root::Slic3r::DynamicConfig,
                  tokens: *const root::std::vector<root::std::string>,
                  extra: *mut root::Slic3r::t_config_option_keys,
                  keys: *mut root::Slic3r::t_config_option_keys,
              );
          }                  extra: *mut root::Slic3r::t_config_option_keys,
                  keys: *mut root::Slic3r::t_config_option_keys,
              );
          }
          extern "C" {
              #[bindgen_original_name("read_cli")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig8read_cliEiPKPKcPSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EESE_"]

          extern "C" {
              #[bindgen_original_name("read_cli")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfig8read_cliEiPKPKcPSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EESE_"]
              pub fn read_cli1(
                  this: *mut root::Slic3r::DynamicConfig,
                  argc: ::std::os::raw::c_int,
                  argv: *const *const ::std::os::raw::c_char,              pub fn read_cli1(
                  this: *mut root::Slic3r::DynamicConfig,
                  argc: ::std::os::raw::c_int,
                  argv: *const *const ::std::os::raw::c_char,
                  extra: *mut root::Slic3r::t_config_option_keys,
                  keys: *mut root::Slic3r::t_config_option_keys,
              ) -> bool;

                  extra: *mut root::Slic3r::t_config_option_keys,
                  keys: *mut root::Slic3r::t_config_option_keys,
              ) -> bool;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig6cbeginB5cxx11Ev"]
              pub fn cbegin(this: *const root::Slic3r::DynamicConfig) -> u64;          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig6cbeginB5cxx11Ev"]
              pub fn cbegin(this: *const root::Slic3r::DynamicConfig) -> u64;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig4cendB5cxx11Ev"]
  
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig4cendB5cxx11Ev"]
              pub fn cend(this: *const root::Slic3r::DynamicConfig) -> u64;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig4sizeEv"]
            pub fn cend(this: *const root::Slic3r::DynamicConfig) -> u64;
          }
          extern "C" {
              #[link_name = "\u{1}_ZNK6Slic3r13DynamicConfig4sizeEv"]
              pub fn size(this: *const root::Slic3r::DynamicConfig) -> root::size_t;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1Ev"]
                pub fn size(this: *const root::Slic3r::DynamicConfig) -> root::size_t;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1Ev"]
              pub fn DynamicConfig(this: *mut root::Slic3r::DynamicConfig);
          }
          extern "C" {
              #[bindgen_original_name("DynamicConfig")]
            pub fn DynamicConfig(this: *mut root::Slic3r::DynamicConfig);
          }
          extern "C" {
              #[bindgen_original_name("DynamicConfig")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1ERKS0_"]
              pub fn DynamicConfig1(
                  this: *mut root::Slic3r::DynamicConfig,
                #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1ERKS0_"]
              pub fn DynamicConfig1(
                  this: *mut root::Slic3r::DynamicConfig,
                  rhs: *const root::Slic3r::DynamicConfig,
              );
          }
          extern "C" {
              #[bindgen_original_name("DynamicConfig")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1EOS0_"]
              pub fn DynamicConfig2(                rhs: *const root::Slic3r::DynamicConfig,
              );
          }
          extern "C" {
              #[bindgen_original_name("DynamicConfig")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1EOS0_"]
              pub fn DynamicConfig2(
                  this: *mut root::Slic3r::DynamicConfig,
                  rhs: *mut root::Slic3r::DynamicConfig,
              );
  
                  this: *mut root::Slic3r::DynamicConfig,
                  rhs: *mut root::Slic3r::DynamicConfig,
              );
          }
          extern "C" {
              #[bindgen_original_name("DynamicConfig")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1ERKNS_10ConfigBaseERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EE"]        }
          extern "C" {
              #[bindgen_original_name("DynamicConfig")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1ERKNS_10ConfigBaseERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EE"]
              pub fn DynamicConfig3(
                  this: *mut root::Slic3r::DynamicConfig,
                  rhs: *const root::Slic3r::ConfigBase,

              pub fn DynamicConfig3(
                  this: *mut root::Slic3r::DynamicConfig,
                  rhs: *const root::Slic3r::ConfigBase,
                  keys: *const root::Slic3r::t_config_option_keys,
              );
          }
          extern "C" {                  keys: *const root::Slic3r::t_config_option_keys,
              );
          }
          extern "C" {
              #[bindgen_original_name("DynamicConfig")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1ERKNS_10ConfigBaseE"]
              pub fn DynamicConfig4(

              #[bindgen_original_name("DynamicConfig")]
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigC1ERKNS_10ConfigBaseE"]
              pub fn DynamicConfig4(
                  this: *mut root::Slic3r::DynamicConfig,
                  rhs: *const root::Slic3r::ConfigBase,
              );
          }                  this: *mut root::Slic3r::DynamicConfig,
                  rhs: *const root::Slic3r::ConfigBase,
              );
          }
          impl DynamicConfig {
              #[inline]
              pub unsafe fn swap(&mut self, other: *mut root::Slic3r::DynamicConfig) {

          impl DynamicConfig {
              #[inline]
              pub unsafe fn swap(&mut self, other: *mut root::Slic3r::DynamicConfig) {
                  swap(self, other)
              }
              #[inline]
              pub unsafe fn clear(&mut self) {                  swap(self, other)
              }
              #[inline]
              pub unsafe fn clear(&mut self) {
                  clear(self)
              }
              #[inline]

                  clear(self)
              }
              #[inline]
              pub unsafe fn erase(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool {              pub unsafe fn erase(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool {
                  erase(self, opt_key)
              }
              #[inline]
  
                  erase(self, opt_key)
              }
              #[inline]
              pub unsafe fn remove_nil_options(&mut self) -> root::size_t {
                  remove_nil_options(self)
              }
              #[inline]
            pub unsafe fn remove_nil_options(&mut self) -> root::size_t {
                  remove_nil_options(self)
              }
              #[inline]
              pub unsafe fn empty(&self) -> bool {
                  empty(self)
              }
              #[inline]
              pub unsafe fn set_key_value(
                  &mut self,
                  opt_key: *const root::std::string,
              pub unsafe fn empty(&self) -> bool {
                  empty(self)
              }
              #[inline]
              pub unsafe fn set_key_value(
                  &mut self,
                  opt_key: *const root::std::string,
                  opt: *mut root::Slic3r::ConfigOption,
              ) -> bool {
                  set_key_value(self, opt_key, opt)
              }                  opt: *mut root::Slic3r::ConfigOption,
              ) -> bool {
                  set_key_value(self, opt_key, opt)
              }
              #[inline]
              pub unsafe fn opt_string(
                  &mut self,
  
              #[inline]
              pub unsafe fn opt_string(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::std::string {
                  opt_string(self, opt_key, create)                opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::std::string {
                  opt_string(self, opt_key, create)
              }
              #[inline]
              pub unsafe fn opt_string1(
  
              }
              #[inline]
              pub unsafe fn opt_string1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::std::string {
                  opt_string1(self, opt_key)                &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::std::string {
                  opt_string1(self, opt_key)
              }
              #[inline]
              pub unsafe fn opt_string2(
  
              }
              #[inline]
              pub unsafe fn opt_string2(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut root::std::string {                &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut root::std::string {
                  opt_string2(self, opt_key, idx)
              }
              #[inline]

                  opt_string2(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn opt_string3(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,              pub unsafe fn opt_string3(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *const root::std::string {
                  opt_string3(self, opt_key, idx)
              }
  
              ) -> *const root::std::string {
                  opt_string3(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn opt_float(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
            #[inline]
              pub unsafe fn opt_float(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *mut f64 {
                  opt_float(self, opt_key)
              }
              #[inline]              ) -> *mut f64 {
                  opt_float(self, opt_key)
              }
              #[inline]
              pub unsafe fn opt_float1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
  
              pub unsafe fn opt_float1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const f64 {
                  opt_float1(self, opt_key)
              }
              #[inline]
              pub unsafe fn opt_float2(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,            ) -> *const f64 {
                  opt_float1(self, opt_key)
              }
              #[inline]
              pub unsafe fn opt_float2(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut f64 {
                  opt_float2(self, opt_key, idx)
  
                  idx: ::std::os::raw::c_uint,
              ) -> *mut f64 {
                  opt_float2(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn opt_float3(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
            }
              #[inline]
              pub unsafe fn opt_float3(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *const f64 {
                  opt_float3(self, opt_key, idx)
                    idx: ::std::os::raw::c_uint,
              ) -> *const f64 {
                  opt_float3(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn opt_int(
                  &mut self,
            }
              #[inline]
              pub unsafe fn opt_int(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *mut ::std::os::raw::c_int {
                  opt_int(self, opt_key)
                    opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *mut ::std::os::raw::c_int {
                  opt_int(self, opt_key)
              }
              #[inline]
              pub unsafe fn opt_int1(
                  &self,
            }
              #[inline]
              pub unsafe fn opt_int1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> ::std::os::raw::c_int {
                  opt_int1(self, opt_key)
                    opt_key: *const root::Slic3r::t_config_option_key,
              ) -> ::std::os::raw::c_int {
                  opt_int1(self, opt_key)
              }
              #[inline]
              pub unsafe fn opt_int2(
                  &mut self,
            }
              #[inline]
              pub unsafe fn opt_int2(
                  &mut self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut ::std::os::raw::c_int {
                    opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> *mut ::std::os::raw::c_int {
                  opt_int2(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn opt_int3(
                opt_int2(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn opt_int3(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
                    &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> ::std::os::raw::c_int {
                  opt_int3(self, opt_key, idx)
              }
              #[inline]
            ) -> ::std::os::raw::c_int {
                  opt_int3(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn opt_bool(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool {              pub unsafe fn opt_bool(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> bool {
                  opt_bool(self, opt_key)
              }
              #[inline]
  
                  opt_bool(self, opt_key)
              }
              #[inline]
              pub unsafe fn opt_bool1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> bool {
                  opt_bool1(self, opt_key, idx)
              }            pub unsafe fn opt_bool1(
                  &self,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  idx: ::std::os::raw::c_uint,
              ) -> bool {
                  opt_bool1(self, opt_key, idx)
              }
              #[inline]
              pub unsafe fn read_cli(
                  &mut self,
  
              #[inline]
              pub unsafe fn read_cli(
                  &mut self,
                  tokens: *const root::std::vector<root::std::string>,
                  extra: *mut root::Slic3r::t_config_option_keys,
                  keys: *mut root::Slic3r::t_config_option_keys,
              ) {                tokens: *const root::std::vector<root::std::string>,
                  extra: *mut root::Slic3r::t_config_option_keys,
                  keys: *mut root::Slic3r::t_config_option_keys,
              ) {
                  read_cli(self, tokens, extra, keys)
              }
              #[inline]
              pub unsafe fn read_cli1(

                  read_cli(self, tokens, extra, keys)
              }
              #[inline]
              pub unsafe fn read_cli1(
                  &mut self,
                  argc: ::std::os::raw::c_int,
                  argv: *const *const ::std::os::raw::c_char,
                  extra: *mut root::Slic3r::t_config_option_keys,                  &mut self,
                  argc: ::std::os::raw::c_int,
                  argv: *const *const ::std::os::raw::c_char,
                  extra: *mut root::Slic3r::t_config_option_keys,
                  keys: *mut root::Slic3r::t_config_option_keys,
              ) -> bool {
                  read_cli1(self, argc, argv, extra, keys)

                  keys: *mut root::Slic3r::t_config_option_keys,
              ) -> bool {
                  read_cli1(self, argc, argv, extra, keys)
              }
              #[inline]
              pub unsafe fn cbegin(&self) -> u64 {
                  cbegin(self)              }
              #[inline]
              pub unsafe fn cbegin(&self) -> u64 {
                  cbegin(self)
              }
              #[inline]
              pub unsafe fn cend(&self) -> u64 {

              }
              #[inline]
              pub unsafe fn cend(&self) -> u64 {
                  cend(self)
              }
              #[inline]
              pub unsafe fn size(&self) -> root::size_t {                  cend(self)
              }
              #[inline]
              pub unsafe fn size(&self) -> root::size_t {
                  size(self)
              }
              #[inline]

                  size(self)
              }
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new1(rhs: *const root::Slic3r::DynamicConfig) -> Self {
  
              }
              #[inline]
              pub unsafe fn new1(rhs: *const root::Slic3r::DynamicConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig1(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
                let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig1(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new2(rhs: *mut root::Slic3r::DynamicConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig2(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new2(rhs: *mut root::Slic3r::DynamicConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig2(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new3(
                  rhs: *const root::Slic3r::ConfigBase,
                  keys: *const root::Slic3r::t_config_option_keys,              #[inline]
              pub unsafe fn new3(
                  rhs: *const root::Slic3r::ConfigBase,
                  keys: *const root::Slic3r::t_config_option_keys,
              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig3(__bindgen_tmp.as_mut_ptr(), rhs, keys);

              ) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig3(__bindgen_tmp.as_mut_ptr(), rhs, keys);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new4(rhs: *const root::Slic3r::ConfigBase) -> Self {                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new4(rhs: *const root::Slic3r::ConfigBase) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig4(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()

                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicConfig4(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigD1Ev"]              }
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r13DynamicConfigD1Ev"]
              pub fn DynamicConfig_destructor(this: *mut root::Slic3r::DynamicConfig);
          }
          extern "C" {
              #[link_name = "\u{1}_ZTv0_n40_NK6Slic3r13DynamicConfig3defEv"]

              pub fn DynamicConfig_destructor(this: *mut root::Slic3r::DynamicConfig);
          }
          extern "C" {
              #[link_name = "\u{1}_ZTv0_n40_NK6Slic3r13DynamicConfig3defEv"]
              pub fn def(this: *mut ::std::os::raw::c_void) -> *const root::Slic3r::ConfigDef;
          }
          extern "C" {
                pub fn def(this: *mut ::std::os::raw::c_void) -> *const root::Slic3r::ConfigDef;
          }
          extern "C" {
              #[link_name = "\u{1}_ZTv0_n32_NK6Slic3r13DynamicConfig6optptrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn optptr(
                  this: *mut ::std::os::raw::c_void,
                  opt_key: *const root::Slic3r::t_config_option_key,
            #[link_name = "\u{1}_ZTv0_n32_NK6Slic3r13DynamicConfig6optptrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"]
              pub fn optptr(
                  this: *mut ::std::os::raw::c_void,
                  opt_key: *const root::Slic3r::t_config_option_key,
              ) -> *const root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[bindgen_original_name("optptr")]              ) -> *const root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[bindgen_original_name("optptr")]
              #[link_name = "\u{1}_ZTv0_n48_N6Slic3r13DynamicConfig6optptrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
              pub fn optptr1(
                  this: *mut ::std::os::raw::c_void,

              #[link_name = "\u{1}_ZTv0_n48_N6Slic3r13DynamicConfig6optptrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb"]
              pub fn optptr1(
                  this: *mut ::std::os::raw::c_void,
                  opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[bindgen_original_name("keys")]
                    opt_key: *const root::Slic3r::t_config_option_key,
                  create: bool,
              ) -> *mut root::Slic3r::ConfigOption;
          }
          extern "C" {
              #[bindgen_original_name("keys")]
              #[link_name = "\u{1}_ZTv0_n56_NK6Slic3r13DynamicConfig4keysB5cxx11Ev"]
              pub fn keys1(this: *mut ::std::os::raw::c_void) -> root::Slic3r::t_config_option_keys;
          }
          #[doc = " Configuration store with a static definition of configuration values."]            #[link_name = "\u{1}_ZTv0_n56_NK6Slic3r13DynamicConfig4keysB5cxx11Ev"]
              pub fn keys1(this: *mut ::std::os::raw::c_void) -> root::Slic3r::t_config_option_keys;
          }
          #[doc = " Configuration store with a static definition of configuration values."]
          #[doc = " In Slic3r, the static configuration stores are during the slicing / g-code generation for efficiency reasons,"]
          #[doc = " because the configuration values could be accessed directly."]
          #[repr(C)]

          #[doc = " In Slic3r, the static configuration stores are during the slicing / g-code generation for efficiency reasons,"]
          #[doc = " because the configuration values could be accessed directly."]
          #[repr(C)]
          pub struct StaticConfig {
              pub __bindgen_padding_0: u64,
          }
          extern "C" {          pub struct StaticConfig {
              pub __bindgen_padding_0: u64,
          }
          extern "C" {
              #[doc = " Set all statically defined config options to their defaults defined by this->def()."]
              #[link_name = "\u{1}_ZN6Slic3r12StaticConfig12set_defaultsEv"]
              pub fn set_defaults(this: *mut root::Slic3r::StaticConfig);

              #[doc = " Set all statically defined config options to their defaults defined by this->def()."]
              #[link_name = "\u{1}_ZN6Slic3r12StaticConfig12set_defaultsEv"]
              pub fn set_defaults(this: *mut root::Slic3r::StaticConfig);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12StaticConfigC2Ev"]
              pub fn StaticConfig(this: *mut root::Slic3r::StaticConfig);          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r12StaticConfigC2Ev"]
              pub fn StaticConfig(this: *mut root::Slic3r::StaticConfig);
          }
          impl StaticConfig {
              #[inline]
  
          }
          impl StaticConfig {
              #[inline]
              pub unsafe fn set_defaults(&mut self) {
                  set_defaults(self)
              }
              #[inline]
            pub unsafe fn set_defaults(&mut self) {
                  set_defaults(self)
              }
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  StaticConfig(__bindgen_tmp.as_mut_ptr());
                pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  StaticConfig(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
                __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
              #[doc = " Gets list of config option names for each config option of this->def, which has a static counter-part defined by the derived object"]
              #[doc = " and which could be resolved by this->optptr(key) call."]
              #[bindgen_original_name("keys")]
                #[doc = " Gets list of config option names for each config option of this->def, which has a static counter-part defined by the derived object"]
              #[doc = " and which could be resolved by this->optptr(key) call."]
              #[bindgen_original_name("keys")]
              #[link_name = "\u{1}_ZTv0_n56_NK6Slic3r12StaticConfig4keysB5cxx11Ev"]
              pub fn keys2(this: *mut ::std::os::raw::c_void) -> root::Slic3r::t_config_option_keys;
          }
          #[repr(C)]
          pub struct DynamicPrintConfig {
              pub _base: root::Slic3r::DynamicConfig,
          }
              #[link_name = "\u{1}_ZTv0_n56_NK6Slic3r12StaticConfig4keysB5cxx11Ev"]
              pub fn keys2(this: *mut ::std::os::raw::c_void) -> root::Slic3r::t_config_option_keys;
          }
          #[repr(C)]
          pub struct DynamicPrintConfig {
              pub _base: root::Slic3r::DynamicConfig,
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig17full_print_configEv"]
              pub fn full_print_config() -> root::Slic3r::DynamicPrintConfig;
          }
        extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig17full_print_configEv"]
              pub fn full_print_config() -> root::Slic3r::DynamicPrintConfig;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig22new_from_defaults_keysERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE"]
              pub fn new_from_defaults_keys(
            extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig22new_from_defaults_keysERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE"]
              pub fn new_from_defaults_keys(
                  keys: *const root::std::vector<root::std::string>,
              ) -> *mut root::Slic3r::DynamicPrintConfig;
          }
          extern "C" {
                keys: *const root::std::vector<root::std::string>,
              ) -> *mut root::Slic3r::DynamicPrintConfig;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig13normalize_fdmEv"]
              pub fn normalize_fdm(this: *mut root::Slic3r::DynamicPrintConfig);
          }
          extern "C" {              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig13normalize_fdmEv"]
              pub fn normalize_fdm(this: *mut root::Slic3r::DynamicPrintConfig);
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig17set_num_extrudersEj"]
              pub fn set_num_extruders(
                  this: *mut root::Slic3r::DynamicPrintConfig,

              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig17set_num_extrudersEj"]
              pub fn set_num_extruders(
                  this: *mut root::Slic3r::DynamicPrintConfig,
                  num_extruders: ::std::os::raw::c_uint,
              );
          }
          extern "C" {                  num_extruders: ::std::os::raw::c_uint,
              );
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig8validateB5cxx11Ev"]
              pub fn validate(this: *mut root::Slic3r::DynamicPrintConfig) -> root::std::string;
          }

              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfig8validateB5cxx11Ev"]
              pub fn validate(this: *mut root::Slic3r::DynamicPrintConfig) -> root::std::string;
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1Ev"]
              pub fn DynamicPrintConfig(this: *mut root::Slic3r::DynamicPrintConfig);
            extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1Ev"]
              pub fn DynamicPrintConfig(this: *mut root::Slic3r::DynamicPrintConfig);
          }
          extern "C" {
              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1ERKS0_"]
        }
          extern "C" {
              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1ERKS0_"]
              pub fn DynamicPrintConfig1(
                  this: *mut root::Slic3r::DynamicPrintConfig,
                  rhs: *const root::Slic3r::DynamicPrintConfig,
              );
          }
          extern "C" {
              pub fn DynamicPrintConfig1(
                  this: *mut root::Slic3r::DynamicPrintConfig,
                  rhs: *const root::Slic3r::DynamicPrintConfig,
              );
          }
          extern "C" {
              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1EOS0_"]
              pub fn DynamicPrintConfig2(
                  this: *mut root::Slic3r::DynamicPrintConfig,              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1EOS0_"]
              pub fn DynamicPrintConfig2(
                  this: *mut root::Slic3r::DynamicPrintConfig,
                  rhs: *mut root::Slic3r::DynamicPrintConfig,
              );
          }

                  rhs: *mut root::Slic3r::DynamicPrintConfig,
              );
          }
          extern "C" {
              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1ERKNS_17StaticPrintConfigE"]
              pub fn DynamicPrintConfig3(          extern "C" {
              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1ERKNS_17StaticPrintConfigE"]
              pub fn DynamicPrintConfig3(
                  this: *mut root::Slic3r::DynamicPrintConfig,
                  rhs: *const root::Slic3r::StaticPrintConfig,
              );

                  this: *mut root::Slic3r::DynamicPrintConfig,
                  rhs: *const root::Slic3r::StaticPrintConfig,
              );
          }
          extern "C" {
              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1ERKNS_10ConfigBaseE"]          }
          extern "C" {
              #[bindgen_original_name("DynamicPrintConfig")]
              #[link_name = "\u{1}_ZN6Slic3r18DynamicPrintConfigC1ERKNS_10ConfigBaseE"]
              pub fn DynamicPrintConfig4(
                  this: *mut root::Slic3r::DynamicPrintConfig,
                  rhs: *const root::Slic3r::ConfigBase,
              );

              pub fn DynamicPrintConfig4(
                  this: *mut root::Slic3r::DynamicPrintConfig,
                  rhs: *const root::Slic3r::ConfigBase,
              );
          }
          impl DynamicPrintConfig {
              #[inline]
              pub unsafe fn full_print_config() -> root::Slic3r::DynamicPrintConfig {          }
          impl DynamicPrintConfig {
              #[inline]
              pub unsafe fn full_print_config() -> root::Slic3r::DynamicPrintConfig {
                  full_print_config()
              }
              #[inline]
  
                  full_print_config()
              }
              #[inline]
              pub unsafe fn new_from_defaults_keys(
                  keys: *const root::std::vector<root::std::string>,
              ) -> *mut root::Slic3r::DynamicPrintConfig {
                  new_from_defaults_keys(keys)            pub unsafe fn new_from_defaults_keys(
                  keys: *const root::std::vector<root::std::string>,
              ) -> *mut root::Slic3r::DynamicPrintConfig {
                  new_from_defaults_keys(keys)
              }
              #[inline]
              pub unsafe fn normalize_fdm(&mut self) {
  
              }
              #[inline]
              pub unsafe fn normalize_fdm(&mut self) {
                  normalize_fdm(self)
              }
              #[inline]
              pub unsafe fn set_num_extruders(&mut self, num_extruders: ::std::os::raw::c_uint) {                normalize_fdm(self)
              }
              #[inline]
              pub unsafe fn set_num_extruders(&mut self, num_extruders: ::std::os::raw::c_uint) {
                  set_num_extruders(self, num_extruders)
              }
              #[inline]
              pub unsafe fn validate(&mut self) -> root::std::string {
                  validate(self)
              }

                  set_num_extruders(self, num_extruders)
              }
              #[inline]
              pub unsafe fn validate(&mut self) -> root::std::string {
                  validate(self)
              }
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig(__bindgen_tmp.as_mut_ptr());              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
              }
              #[inline]

                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new1(rhs: *const root::Slic3r::DynamicPrintConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig1(__bindgen_tmp.as_mut_ptr(), rhs);
                pub unsafe fn new1(rhs: *const root::Slic3r::DynamicPrintConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig1(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new2(rhs: *mut root::Slic3r::DynamicPrintConfig) -> Self {
                __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new2(rhs: *mut root::Slic3r::DynamicPrintConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig2(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
                    let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig2(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new3(rhs: *const root::Slic3r::StaticPrintConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();            }
              #[inline]
              pub unsafe fn new3(rhs: *const root::Slic3r::StaticPrintConfig) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig3(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }

                  DynamicPrintConfig3(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
              #[inline]
              pub unsafe fn new4(rhs: *const root::Slic3r::ConfigBase) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig4(__bindgen_tmp.as_mut_ptr(), rhs);              #[inline]
              pub unsafe fn new4(rhs: *const root::Slic3r::ConfigBase) -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  DynamicPrintConfig4(__bindgen_tmp.as_mut_ptr(), rhs);
                  __bindgen_tmp.assume_init()
              }
          }
  
                  __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
              #[bindgen_original_name("def")]
              #[link_name = "\u{1}_ZTv0_n40_NK6Slic3r18DynamicPrintConfig3defEv"]
              pub fn def1(this: *mut ::std::os::raw::c_void) -> *const root::Slic3r::ConfigDef;
          }        extern "C" {
              #[bindgen_original_name("def")]
              #[link_name = "\u{1}_ZTv0_n40_NK6Slic3r18DynamicPrintConfig3defEv"]
              pub fn def1(this: *mut ::std::os::raw::c_void) -> *const root::Slic3r::ConfigDef;
          }
          extern "C" {
              #[bindgen_original_name("handle_legacy")]
              #[link_name = "\u{1}_ZTv0_n64_NK6Slic3r18DynamicPrintConfig13handle_legacyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_"]
              pub fn handle_legacy1(
                  this: *mut ::std::os::raw::c_void,
                  opt_key: *mut root::Slic3r::t_config_option_key,
          extern "C" {
              #[bindgen_original_name("handle_legacy")]
              #[link_name = "\u{1}_ZTv0_n64_NK6Slic3r18DynamicPrintConfig13handle_legacyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_"]
              pub fn handle_legacy1(
                  this: *mut ::std::os::raw::c_void,
                  opt_key: *mut root::Slic3r::t_config_option_key,
                  value: *mut root::std::string,
              );
          }
  
                  value: *mut root::std::string,
              );
          }
          #[repr(C)]
          pub struct StaticPrintConfig {
              pub _base: root::Slic3r::StaticConfig,
          }
        #[repr(C)]
          pub struct StaticPrintConfig {
              pub _base: root::Slic3r::StaticConfig,
          }
          #[repr(C)]
          pub struct StaticCacheBase {
              pub m_map_name_to_offset: root::std::map<
            #[repr(C)]
          pub struct StaticCacheBase {
              pub m_map_name_to_offset: root::std::map<
                  root::std::string,
                  isize,
                  root::std::less<
                      root::std::basic_string<
                root::std::string,
                  isize,
                  root::std::less<
                      root::std::basic_string<
                          ::std::os::raw::c_char,
                          root::std::char_traits<::std::os::raw::c_char>,
                          root::std::allocator<::std::os::raw::c_char>,
                            ::std::os::raw::c_char,
                          root::std::char_traits<::std::os::raw::c_char>,
                          root::std::allocator<::std::os::raw::c_char>,
                      >,
                  >,
                  root::std::allocator<
                      root::std::pair<
                    >,
                  >,
                  root::std::allocator<
                      root::std::pair<
                          root::std::basic_string<
                              ::std::os::raw::c_char,
                              root::std::char_traits<::std::os::raw::c_char>,
                            root::std::basic_string<
                              ::std::os::raw::c_char,
                              root::std::char_traits<::std::os::raw::c_char>,
                              root::std::allocator<::std::os::raw::c_char>,
                          >,
                          ::std::os::raw::c_long,
                      >,
                            root::std::allocator<::std::os::raw::c_char>,
                          >,
                          ::std::os::raw::c_long,
                      >,
                  >,
              >,
          }
                    >,
              >,
          }
          #[repr(C)]
          pub struct StaticCache<T> {
              pub _base: root::Slic3r::StaticCacheBase,
              pub m_defaults: *mut T,        #[repr(C)]
          pub struct StaticCache<T> {
              pub _base: root::Slic3r::StaticCacheBase,
              pub m_defaults: *mut T,
              pub m_keys: root::std::vector<root::std::string>,
              pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
          }

              pub m_keys: root::std::vector<root::std::string>,
              pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
          }
          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r17StaticPrintConfigC2Ev"]
              pub fn StaticPrintConfig(this: *mut root::Slic3r::StaticPrintConfig);
          }          extern "C" {
              #[link_name = "\u{1}_ZN6Slic3r17StaticPrintConfigC2Ev"]
              pub fn StaticPrintConfig(this: *mut root::Slic3r::StaticPrintConfig);
          }
          impl StaticPrintConfig {
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  StaticPrintConfig(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
          impl StaticPrintConfig {
              #[inline]
              pub unsafe fn new() -> Self {
                  let mut __bindgen_tmp = ::std::mem::MaybeUninit::uninit();
                  StaticPrintConfig(__bindgen_tmp.as_mut_ptr());
                  __bindgen_tmp.assume_init()
              }
          }
          extern "C" {
  
              }
          }
          extern "C" {
              #[bindgen_original_name("def")]
              #[link_name = "\u{1}_ZTv0_n40_NK6Slic3r17StaticPrintConfig3defEv"]
              pub fn def2(this: *mut ::std::os::raw::c_void) -> *const root::Slic3r::ConfigDef;
          }
          extern "C" {            #[bindgen_original_name("def")]
              #[link_name = "\u{1}_ZTv0_n40_NK6Slic3r17StaticPrintConfig3defEv"]
              pub fn def2(this: *mut ::std::os::raw::c_void) -> *const root::Slic3r::ConfigDef;
          }
          extern "C" {
              #[bindgen_original_name("handle_legacy")]
              #[link_name = "\u{1}_ZTv0_n64_NK6Slic3r17StaticPrintConfig13handle_legacyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_"]
              pub fn handle_legacy2(

              #[bindgen_original_name("handle_legacy")]
              #[link_name = "\u{1}_ZTv0_n64_NK6Slic3r17StaticPrintConfig13handle_legacyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_"]
              pub fn handle_legacy2(
                  this: *mut ::std::os::raw::c_void,
                  opt_key: *mut root::Slic3r::t_config_option_key,
                  value: *mut root::std::string,
              );                  this: *mut ::std::os::raw::c_void,
                  opt_key: *mut root::Slic3r::t_config_option_key,
                  value: *mut root::std::string,
              );
          }
      }
      pub mod Eigen {
  
          }
      }
      pub mod Eigen {
          #[allow(unused_imports)]
          use self::super::super::root;
          pub mod internal {
              #[allow(unused_imports)]        #[allow(unused_imports)]
          use self::super::super::root;
          pub mod internal {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
      }
  
              use self::super::super::super::root;
          }
      }
      pub mod cereal {
          #[allow(unused_imports)]
          use self::super::super::root;
          pub mod detail {
    pub mod cereal {
          #[allow(unused_imports)]
          use self::super::super::root;
          pub mod detail {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
                #[allow(unused_imports)]
              use self::super::super::super::root;
          }
          pub mod traits {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
        pub mod traits {
              #[allow(unused_imports)]
              use self::super::super::super::root;
          }
      }
      pub mod boost_concepts {
          #[allow(unused_imports)]
        }
      pub mod boost_concepts {
          #[allow(unused_imports)]
          use self::super::super::root;
      }
      #[repr(C)]
      pub struct __locale_data {
        use self::super::super::root;
      }
      #[repr(C)]
      pub struct __locale_data {
          pub _address: u8,
      }
  }
   }          pub _address: u8,
      }
  }
   }
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function getInt (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function getFloat (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function getBool (in namespace Slic3r).

  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function getInt (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function getFloat (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function getBool (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function setInt (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function nullable (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function is_nil (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function overriden_by (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function apply_override (in namespace Slic3r).
  thread 'main' panicked at 'Type Slic3r::f32 not known to byvalue_checker', /home/daniel/.cargo/git/checkouts/autocxx-369cba6970eb5724/3ddb255/engine/src/byvalue_checker.rs:166:28
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function setInt (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function nullable (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function is_nil (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function overriden_by (in namespace Slic3r).
  cargo:warning=MESSAGE:Skipped function because: Member function encountered where the 'this' type is 'void*'. This is usually because it's a virtual function that may be overridden, which is not supported. Function apply_override (in namespace Slic3r).
  thread 'main' panicked at 'Type Slic3r::f32 not known to byvalue_checker', /home/daniel/.cargo/git/checkouts/autocxx-369cba6970eb5724/3ddb255/engine/src/byvalue_checker.rs:166:28
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

If you want me to test some options I can do that.

@adetaylor
Copy link
Collaborator

OK, I still can't immediately explain the f32/f64 stuff, but it looks to me like your build is running twice in parallel and that's why you've got two copies of everything.

This could be because you're using an older version of autocxx-macro (which built stuff; the latest code just include!s pre-built code) but it seems more likely that your build.rs is doing the build twice for some reason? Or you're running the build twice? Or - I think the most likely theory - you've got two include_cpp! macros in a single .rs file? (I'd recommend just having one with all the #include and generate bits).

In any case, whatever the reason, that's why you've got two sets of bindgen output interleaved.

@kilimnik
Copy link
Author

I just realized why it printed 2 times. It was a dump mistake on my site.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants