coolprop_sys/
bindings_generated.rs

1// automatically generated by rust-bindgen 0.72.1
2
3pub const __bool_true_false_are_defined: u32 = 1;
4pub const true_: u32 = 1;
5pub const false_: u32 = 0;
6pub struct CoolProp {
7    __library: ::libloading::Library,
8    pub Props1SI: unsafe extern "C" fn(
9        FluidName: *const ::core::ffi::c_char,
10        Output: *const ::core::ffi::c_char,
11    ) -> f64,
12    pub Props1SImulti: unsafe extern "C" fn(
13        Outputs: *const ::core::ffi::c_char,
14        backend: *mut ::core::ffi::c_char,
15        FluidNames: *const ::core::ffi::c_char,
16        fractions: *const f64,
17        length_fractions: ::core::ffi::c_long,
18        result: *mut f64,
19        resdim1: *mut ::core::ffi::c_long,
20    ),
21    pub PropsSI: unsafe extern "C" fn(
22        Output: *const ::core::ffi::c_char,
23        Name1: *const ::core::ffi::c_char,
24        Prop1: f64,
25        Name2: *const ::core::ffi::c_char,
26        Prop2: f64,
27        FluidName: *const ::core::ffi::c_char,
28    ) -> f64,
29    pub PropsSImulti: unsafe extern "C" fn(
30        Outputs: *const ::core::ffi::c_char,
31        Name1: *const ::core::ffi::c_char,
32        Prop1: *mut f64,
33        size_Prop1: ::core::ffi::c_long,
34        Name2: *const ::core::ffi::c_char,
35        Prop2: *mut f64,
36        size_Prop2: ::core::ffi::c_long,
37        backend: *mut ::core::ffi::c_char,
38        FluidNames: *const ::core::ffi::c_char,
39        fractions: *const f64,
40        length_fractions: ::core::ffi::c_long,
41        result: *mut f64,
42        resdim1: *mut ::core::ffi::c_long,
43        resdim2: *mut ::core::ffi::c_long,
44    ),
45    pub PhaseSI: unsafe extern "C" fn(
46        Name1: *const ::core::ffi::c_char,
47        Prop1: f64,
48        Name2: *const ::core::ffi::c_char,
49        Prop2: f64,
50        FluidName: *const ::core::ffi::c_char,
51        phase: *mut ::core::ffi::c_char,
52        n: ::core::ffi::c_int,
53    ) -> ::core::ffi::c_long,
54    pub get_global_param_string: unsafe extern "C" fn(
55        param: *const ::core::ffi::c_char,
56        Output: *mut ::core::ffi::c_char,
57        n: ::core::ffi::c_int,
58    ) -> ::core::ffi::c_long,
59    pub get_parameter_information_string: unsafe extern "C" fn(
60        param: *const ::core::ffi::c_char,
61        Output: *mut ::core::ffi::c_char,
62        n: ::core::ffi::c_int,
63    ) -> ::core::ffi::c_long,
64    pub get_fluid_param_string: unsafe extern "C" fn(
65        fluid: *const ::core::ffi::c_char,
66        param: *const ::core::ffi::c_char,
67        Output: *mut ::core::ffi::c_char,
68        n: ::core::ffi::c_int,
69    ) -> ::core::ffi::c_long,
70    pub get_fluid_param_string_len: unsafe extern "C" fn(
71        fluid: *const ::core::ffi::c_char,
72        param: *const ::core::ffi::c_char,
73    ) -> ::core::ffi::c_long,
74    pub set_config_string:
75        unsafe extern "C" fn(key: *const ::core::ffi::c_char, val: *const ::core::ffi::c_char),
76    pub set_config_double: unsafe extern "C" fn(key: *const ::core::ffi::c_char, val: f64),
77    pub set_config_bool: unsafe extern "C" fn(key: *const ::core::ffi::c_char, val: bool),
78    pub set_departure_functions: unsafe extern "C" fn(
79        string_data: *const ::core::ffi::c_char,
80        errcode: *mut ::core::ffi::c_long,
81        message_buffer: *mut ::core::ffi::c_char,
82        buffer_length: ::core::ffi::c_long,
83    ),
84    pub set_reference_stateS: unsafe extern "C" fn(
85        Ref: *const ::core::ffi::c_char,
86        reference_state: *const ::core::ffi::c_char,
87    ) -> ::core::ffi::c_int,
88    pub set_reference_stateD: unsafe extern "C" fn(
89        Ref: *const ::core::ffi::c_char,
90        T: f64,
91        rhomolar: f64,
92        hmolar0: f64,
93        smolar0: f64,
94    ) -> ::core::ffi::c_int,
95    pub propssi_: unsafe extern "C" fn(
96        Output: *const ::core::ffi::c_char,
97        Name1: *const ::core::ffi::c_char,
98        Prop1: *const f64,
99        Name2: *const ::core::ffi::c_char,
100        Prop2: *const f64,
101        FluidName: *const ::core::ffi::c_char,
102        output: *mut f64,
103    ),
104    pub F2K: unsafe extern "C" fn(T_F: f64) -> f64,
105    pub K2F: unsafe extern "C" fn(T_K: f64) -> f64,
106    pub get_param_index:
107        unsafe extern "C" fn(param: *const ::core::ffi::c_char) -> ::core::ffi::c_long,
108    pub get_input_pair_index:
109        unsafe extern "C" fn(pair: *const ::core::ffi::c_char) -> ::core::ffi::c_long,
110    pub redirect_stdout:
111        unsafe extern "C" fn(file: *const ::core::ffi::c_char) -> ::core::ffi::c_long,
112    pub get_debug_level: unsafe extern "C" fn() -> ::core::ffi::c_int,
113    pub set_debug_level: unsafe extern "C" fn(level: ::core::ffi::c_int),
114    pub saturation_ancillary: unsafe extern "C" fn(
115        fluid_name: *const ::core::ffi::c_char,
116        output: *const ::core::ffi::c_char,
117        Q: ::core::ffi::c_int,
118        input: *const ::core::ffi::c_char,
119        value: f64,
120    ) -> f64,
121    pub HAPropsSI: unsafe extern "C" fn(
122        Output: *const ::core::ffi::c_char,
123        Name1: *const ::core::ffi::c_char,
124        Prop1: f64,
125        Name2: *const ::core::ffi::c_char,
126        Prop2: f64,
127        Name3: *const ::core::ffi::c_char,
128        Prop3: f64,
129    ) -> f64,
130    pub cair_sat: unsafe extern "C" fn(T: f64) -> f64,
131    pub hapropssi_: unsafe extern "C" fn(
132        Output: *const ::core::ffi::c_char,
133        Name1: *const ::core::ffi::c_char,
134        Prop1: *const f64,
135        Name2: *const ::core::ffi::c_char,
136        Prop2: *const f64,
137        Name3: *const ::core::ffi::c_char,
138        Prop3: *const f64,
139        output: *mut f64,
140    ),
141    pub HAProps: unsafe extern "C" fn(
142        Output: *const ::core::ffi::c_char,
143        Name1: *const ::core::ffi::c_char,
144        Prop1: f64,
145        Name2: *const ::core::ffi::c_char,
146        Prop2: f64,
147        Name3: *const ::core::ffi::c_char,
148        Prop3: f64,
149    ) -> f64,
150    pub haprops_: unsafe extern "C" fn(
151        Output: *const ::core::ffi::c_char,
152        Name1: *const ::core::ffi::c_char,
153        Prop1: *const f64,
154        Name2: *const ::core::ffi::c_char,
155        Prop2: *const f64,
156        Name3: *const ::core::ffi::c_char,
157        Prop3: *const f64,
158        output: *mut f64,
159    ),
160    pub AbstractState_factory: unsafe extern "C" fn(
161        backend: *const ::core::ffi::c_char,
162        fluids: *const ::core::ffi::c_char,
163        errcode: *mut ::core::ffi::c_long,
164        message_buffer: *mut ::core::ffi::c_char,
165        buffer_length: ::core::ffi::c_long,
166    ) -> ::core::ffi::c_long,
167    pub AbstractState_fluid_names: unsafe extern "C" fn(
168        handle: ::core::ffi::c_long,
169        fluids: *mut ::core::ffi::c_char,
170        errcode: *mut ::core::ffi::c_long,
171        message_buffer: *mut ::core::ffi::c_char,
172        buffer_length: ::core::ffi::c_long,
173    ),
174    pub AbstractState_free: unsafe extern "C" fn(
175        handle: ::core::ffi::c_long,
176        errcode: *mut ::core::ffi::c_long,
177        message_buffer: *mut ::core::ffi::c_char,
178        buffer_length: ::core::ffi::c_long,
179    ),
180    pub AbstractState_set_fractions: unsafe extern "C" fn(
181        handle: ::core::ffi::c_long,
182        fractions: *const f64,
183        N: ::core::ffi::c_long,
184        errcode: *mut ::core::ffi::c_long,
185        message_buffer: *mut ::core::ffi::c_char,
186        buffer_length: ::core::ffi::c_long,
187    ),
188    pub AbstractState_get_mole_fractions: unsafe extern "C" fn(
189        handle: ::core::ffi::c_long,
190        fractions: *mut f64,
191        maxN: ::core::ffi::c_long,
192        N: *mut ::core::ffi::c_long,
193        errcode: *mut ::core::ffi::c_long,
194        message_buffer: *mut ::core::ffi::c_char,
195        buffer_length: ::core::ffi::c_long,
196    ),
197    pub AbstractState_get_mole_fractions_satState: unsafe extern "C" fn(
198        handle: ::core::ffi::c_long,
199        saturated_state: *const ::core::ffi::c_char,
200        fractions: *mut f64,
201        maxN: ::core::ffi::c_long,
202        N: *mut ::core::ffi::c_long,
203        errcode: *mut ::core::ffi::c_long,
204        message_buffer: *mut ::core::ffi::c_char,
205        buffer_length: ::core::ffi::c_long,
206    ),
207    pub AbstractState_get_fugacity: unsafe extern "C" fn(
208        handle: ::core::ffi::c_long,
209        i: ::core::ffi::c_long,
210        errcode: *mut ::core::ffi::c_long,
211        message_buffer: *mut ::core::ffi::c_char,
212        buffer_length: ::core::ffi::c_long,
213    ) -> f64,
214    pub AbstractState_get_fugacity_coefficient: unsafe extern "C" fn(
215        handle: ::core::ffi::c_long,
216        i: ::core::ffi::c_long,
217        errcode: *mut ::core::ffi::c_long,
218        message_buffer: *mut ::core::ffi::c_char,
219        buffer_length: ::core::ffi::c_long,
220    ) -> f64,
221    pub AbstractState_update: unsafe extern "C" fn(
222        handle: ::core::ffi::c_long,
223        input_pair: ::core::ffi::c_long,
224        value1: f64,
225        value2: f64,
226        errcode: *mut ::core::ffi::c_long,
227        message_buffer: *mut ::core::ffi::c_char,
228        buffer_length: ::core::ffi::c_long,
229    ),
230    pub AbstractState_specify_phase: unsafe extern "C" fn(
231        handle: ::core::ffi::c_long,
232        phase: *const ::core::ffi::c_char,
233        errcode: *mut ::core::ffi::c_long,
234        message_buffer: *mut ::core::ffi::c_char,
235        buffer_length: ::core::ffi::c_long,
236    ),
237    pub AbstractState_unspecify_phase: unsafe extern "C" fn(
238        handle: ::core::ffi::c_long,
239        errcode: *mut ::core::ffi::c_long,
240        message_buffer: *mut ::core::ffi::c_char,
241        buffer_length: ::core::ffi::c_long,
242    ),
243    pub AbstractState_keyed_output: unsafe extern "C" fn(
244        handle: ::core::ffi::c_long,
245        param: ::core::ffi::c_long,
246        errcode: *mut ::core::ffi::c_long,
247        message_buffer: *mut ::core::ffi::c_char,
248        buffer_length: ::core::ffi::c_long,
249    ) -> f64,
250    pub AbstractState_first_saturation_deriv: unsafe extern "C" fn(
251        handle: ::core::ffi::c_long,
252        Of: ::core::ffi::c_long,
253        Wrt: ::core::ffi::c_long,
254        errcode: *mut ::core::ffi::c_long,
255        message_buffer: *mut ::core::ffi::c_char,
256        buffer_length: ::core::ffi::c_long,
257    ) -> f64,
258    pub AbstractState_first_partial_deriv: unsafe extern "C" fn(
259        handle: ::core::ffi::c_long,
260        Of: ::core::ffi::c_long,
261        Wrt: ::core::ffi::c_long,
262        Constant: ::core::ffi::c_long,
263        errcode: *mut ::core::ffi::c_long,
264        message_buffer: *mut ::core::ffi::c_char,
265        buffer_length: ::core::ffi::c_long,
266    ) -> f64,
267    pub AbstractState_second_two_phase_deriv: unsafe extern "C" fn(
268        handle: ::core::ffi::c_long,
269        Of1: ::core::ffi::c_long,
270        Wrt1: ::core::ffi::c_long,
271        Constant1: ::core::ffi::c_long,
272        Wrt2: ::core::ffi::c_long,
273        Constant2: ::core::ffi::c_long,
274        errcode: *mut ::core::ffi::c_long,
275        message_buffer: *mut ::core::ffi::c_char,
276        buffer_length: ::core::ffi::c_long,
277    ) -> f64,
278    pub AbstractState_second_partial_deriv: unsafe extern "C" fn(
279        handle: ::core::ffi::c_long,
280        Of1: ::core::ffi::c_long,
281        Wrt1: ::core::ffi::c_long,
282        Constant1: ::core::ffi::c_long,
283        Wrt2: ::core::ffi::c_long,
284        Constant2: ::core::ffi::c_long,
285        errcode: *mut ::core::ffi::c_long,
286        message_buffer: *mut ::core::ffi::c_char,
287        buffer_length: ::core::ffi::c_long,
288    ) -> f64,
289    pub AbstractState_first_two_phase_deriv_splined: unsafe extern "C" fn(
290        handle: ::core::ffi::c_long,
291        Of: ::core::ffi::c_long,
292        Wrt: ::core::ffi::c_long,
293        Constant: ::core::ffi::c_long,
294        x_end: f64,
295        errcode: *mut ::core::ffi::c_long,
296        message_buffer: *mut ::core::ffi::c_char,
297        buffer_length: ::core::ffi::c_long,
298    ) -> f64,
299    pub AbstractState_first_two_phase_deriv: unsafe extern "C" fn(
300        handle: ::core::ffi::c_long,
301        Of: ::core::ffi::c_long,
302        Wrt: ::core::ffi::c_long,
303        Constant: ::core::ffi::c_long,
304        errcode: *mut ::core::ffi::c_long,
305        message_buffer: *mut ::core::ffi::c_char,
306        buffer_length: ::core::ffi::c_long,
307    ) -> f64,
308    pub AbstractState_update_and_common_out: unsafe extern "C" fn(
309        handle: ::core::ffi::c_long,
310        input_pair: ::core::ffi::c_long,
311        value1: *const f64,
312        value2: *const f64,
313        length: ::core::ffi::c_long,
314        T: *mut f64,
315        p: *mut f64,
316        rhomolar: *mut f64,
317        hmolar: *mut f64,
318        smolar: *mut f64,
319        errcode: *mut ::core::ffi::c_long,
320        message_buffer: *mut ::core::ffi::c_char,
321        buffer_length: ::core::ffi::c_long,
322    ),
323    pub AbstractState_update_and_1_out: unsafe extern "C" fn(
324        handle: ::core::ffi::c_long,
325        input_pair: ::core::ffi::c_long,
326        value1: *const f64,
327        value2: *const f64,
328        length: ::core::ffi::c_long,
329        output: ::core::ffi::c_long,
330        out: *mut f64,
331        errcode: *mut ::core::ffi::c_long,
332        message_buffer: *mut ::core::ffi::c_char,
333        buffer_length: ::core::ffi::c_long,
334    ),
335    pub AbstractState_update_and_5_out: unsafe extern "C" fn(
336        handle: ::core::ffi::c_long,
337        input_pair: ::core::ffi::c_long,
338        value1: *const f64,
339        value2: *const f64,
340        length: ::core::ffi::c_long,
341        outputs: *mut ::core::ffi::c_long,
342        out1: *mut f64,
343        out2: *mut f64,
344        out3: *mut f64,
345        out4: *mut f64,
346        out5: *mut f64,
347        errcode: *mut ::core::ffi::c_long,
348        message_buffer: *mut ::core::ffi::c_char,
349        buffer_length: ::core::ffi::c_long,
350    ),
351    pub AbstractState_set_binary_interaction_double: unsafe extern "C" fn(
352        handle: ::core::ffi::c_long,
353        i: ::core::ffi::c_long,
354        j: ::core::ffi::c_long,
355        parameter: *const ::core::ffi::c_char,
356        value: f64,
357        errcode: *mut ::core::ffi::c_long,
358        message_buffer: *mut ::core::ffi::c_char,
359        buffer_length: ::core::ffi::c_long,
360    ),
361    pub AbstractState_set_cubic_alpha_C: unsafe extern "C" fn(
362        handle: ::core::ffi::c_long,
363        i: ::core::ffi::c_long,
364        parameter: *const ::core::ffi::c_char,
365        c1: f64,
366        c2: f64,
367        c3: f64,
368        errcode: *mut ::core::ffi::c_long,
369        message_buffer: *mut ::core::ffi::c_char,
370        buffer_length: ::core::ffi::c_long,
371    ),
372    pub AbstractState_set_fluid_parameter_double: unsafe extern "C" fn(
373        handle: ::core::ffi::c_long,
374        i: ::core::ffi::c_long,
375        parameter: *const ::core::ffi::c_char,
376        value: f64,
377        errcode: *mut ::core::ffi::c_long,
378        message_buffer: *mut ::core::ffi::c_char,
379        buffer_length: ::core::ffi::c_long,
380    ),
381    pub AbstractState_build_phase_envelope: unsafe extern "C" fn(
382        handle: ::core::ffi::c_long,
383        level: *const ::core::ffi::c_char,
384        errcode: *mut ::core::ffi::c_long,
385        message_buffer: *mut ::core::ffi::c_char,
386        buffer_length: ::core::ffi::c_long,
387    ),
388    pub AbstractState_get_phase_envelope_data: unsafe extern "C" fn(
389        handle: ::core::ffi::c_long,
390        length: ::core::ffi::c_long,
391        T: *mut f64,
392        p: *mut f64,
393        rhomolar_vap: *mut f64,
394        rhomolar_liq: *mut f64,
395        x: *mut f64,
396        y: *mut f64,
397        errcode: *mut ::core::ffi::c_long,
398        message_buffer: *mut ::core::ffi::c_char,
399        buffer_length: ::core::ffi::c_long,
400    ),
401    pub AbstractState_get_phase_envelope_data_checkedMemory: unsafe extern "C" fn(
402        handle: ::core::ffi::c_long,
403        length: ::core::ffi::c_long,
404        maxComponents: ::core::ffi::c_long,
405        T: *mut f64,
406        p: *mut f64,
407        rhomolar_vap: *mut f64,
408        rhomolar_liq: *mut f64,
409        x: *mut f64,
410        y: *mut f64,
411        actual_length: *mut ::core::ffi::c_long,
412        actual_components: *mut ::core::ffi::c_long,
413        errcode: *mut ::core::ffi::c_long,
414        message_buffer: *mut ::core::ffi::c_char,
415        buffer_length: ::core::ffi::c_long,
416    ),
417    pub AbstractState_build_spinodal: unsafe extern "C" fn(
418        handle: ::core::ffi::c_long,
419        errcode: *mut ::core::ffi::c_long,
420        message_buffer: *mut ::core::ffi::c_char,
421        buffer_length: ::core::ffi::c_long,
422    ),
423    pub AbstractState_get_spinodal_data: unsafe extern "C" fn(
424        handle: ::core::ffi::c_long,
425        length: ::core::ffi::c_long,
426        tau: *mut f64,
427        delta: *mut f64,
428        M1: *mut f64,
429        errcode: *mut ::core::ffi::c_long,
430        message_buffer: *mut ::core::ffi::c_char,
431        buffer_length: ::core::ffi::c_long,
432    ),
433    pub AbstractState_all_critical_points: unsafe extern "C" fn(
434        handle: ::core::ffi::c_long,
435        length: ::core::ffi::c_long,
436        T: *mut f64,
437        p: *mut f64,
438        rhomolar: *mut f64,
439        stable: *mut ::core::ffi::c_long,
440        errcode: *mut ::core::ffi::c_long,
441        message_buffer: *mut ::core::ffi::c_char,
442        buffer_length: ::core::ffi::c_long,
443    ),
444    pub AbstractState_keyed_output_satState: unsafe extern "C" fn(
445        handle: ::core::ffi::c_long,
446        saturated_state: *const ::core::ffi::c_char,
447        param: ::core::ffi::c_long,
448        errcode: *mut ::core::ffi::c_long,
449        message_buffer: *mut ::core::ffi::c_char,
450        buffer_length: ::core::ffi::c_long,
451    ) -> f64,
452    pub AbstractState_backend_name: unsafe extern "C" fn(
453        handle: ::core::ffi::c_long,
454        backend: *mut ::core::ffi::c_char,
455        errcode: *mut ::core::ffi::c_long,
456        message_buffer: *mut ::core::ffi::c_char,
457        buffer_length: ::core::ffi::c_long,
458    ),
459    pub AbstractState_fluid_param_string: unsafe extern "C" fn(
460        handle: ::core::ffi::c_long,
461        param: *const ::core::ffi::c_char,
462        return_buffer: *mut ::core::ffi::c_char,
463        return_buffer_length: ::core::ffi::c_long,
464        errcode: *mut ::core::ffi::c_long,
465        message_buffer: *mut ::core::ffi::c_char,
466        buffer_length: ::core::ffi::c_long,
467    ),
468    pub AbstractState_phase: unsafe extern "C" fn(
469        handle: ::core::ffi::c_long,
470        errcode: *mut ::core::ffi::c_long,
471        message_buffer: *mut ::core::ffi::c_char,
472        buffer_length: ::core::ffi::c_long,
473    ) -> ::core::ffi::c_int,
474    pub AbstractState_saturated_liquid_keyed_output: unsafe extern "C" fn(
475        handle: ::core::ffi::c_long,
476        param: ::core::ffi::c_long,
477        errcode: *mut ::core::ffi::c_long,
478        message_buffer: *mut ::core::ffi::c_char,
479        buffer_length: ::core::ffi::c_long,
480    ) -> f64,
481    pub AbstractState_saturated_vapor_keyed_output: unsafe extern "C" fn(
482        handle: ::core::ffi::c_long,
483        param: ::core::ffi::c_long,
484        errcode: *mut ::core::ffi::c_long,
485        message_buffer: *mut ::core::ffi::c_char,
486        buffer_length: ::core::ffi::c_long,
487    ) -> f64,
488    pub add_fluids_as_JSON: unsafe extern "C" fn(
489        backend: *const ::core::ffi::c_char,
490        fluidstring: *const ::core::ffi::c_char,
491        errcode: *mut ::core::ffi::c_long,
492        message_buffer: *mut ::core::ffi::c_char,
493        buffer_length: ::core::ffi::c_long,
494    ),
495    pub C_is_valid_fluid_string:
496        unsafe extern "C" fn(fluidName: *const ::core::ffi::c_char) -> ::core::ffi::c_int,
497    pub C_extract_backend: unsafe extern "C" fn(
498        fluid_string: *const ::core::ffi::c_char,
499        backend: *mut ::core::ffi::c_char,
500        backend_length: ::core::ffi::c_long,
501        fluid: *mut ::core::ffi::c_char,
502        fluid_length: ::core::ffi::c_long,
503    ) -> ::core::ffi::c_int,
504}
505impl CoolProp {
506    pub unsafe fn new<P>(path: P) -> Result<Self, ::libloading::Error>
507    where
508        P: AsRef<::std::ffi::OsStr>,
509    {
510        let library = ::libloading::Library::new(path)?;
511        Self::from_library(library)
512    }
513
514    pub unsafe fn from_library<L>(library: L) -> Result<Self, ::libloading::Error>
515    where
516        L: Into<::libloading::Library>,
517    {
518        let __library = library.into();
519        let Props1SI = __library.get(b"Props1SI\0").map(|sym| *sym)?;
520        let Props1SImulti = __library.get(b"Props1SImulti\0").map(|sym| *sym)?;
521        let PropsSI = __library.get(b"PropsSI\0").map(|sym| *sym)?;
522        let PropsSImulti = __library.get(b"PropsSImulti\0").map(|sym| *sym)?;
523        let PhaseSI = __library.get(b"PhaseSI\0").map(|sym| *sym)?;
524        let get_global_param_string =
525            __library.get(b"get_global_param_string\0").map(|sym| *sym)?;
526        let get_parameter_information_string =
527            __library.get(b"get_parameter_information_string\0").map(|sym| *sym)?;
528        let get_fluid_param_string = __library.get(b"get_fluid_param_string\0").map(|sym| *sym)?;
529        let get_fluid_param_string_len =
530            __library.get(b"get_fluid_param_string_len\0").map(|sym| *sym)?;
531        let set_config_string = __library.get(b"set_config_string\0").map(|sym| *sym)?;
532        let set_config_double = __library.get(b"set_config_double\0").map(|sym| *sym)?;
533        let set_config_bool = __library.get(b"set_config_bool\0").map(|sym| *sym)?;
534        let set_departure_functions =
535            __library.get(b"set_departure_functions\0").map(|sym| *sym)?;
536        let set_reference_stateS = __library.get(b"set_reference_stateS\0").map(|sym| *sym)?;
537        let set_reference_stateD = __library.get(b"set_reference_stateD\0").map(|sym| *sym)?;
538        let propssi_ = __library.get(b"propssi_\0").map(|sym| *sym)?;
539        let F2K = __library.get(b"F2K\0").map(|sym| *sym)?;
540        let K2F = __library.get(b"K2F\0").map(|sym| *sym)?;
541        let get_param_index = __library.get(b"get_param_index\0").map(|sym| *sym)?;
542        let get_input_pair_index = __library.get(b"get_input_pair_index\0").map(|sym| *sym)?;
543        let redirect_stdout = __library.get(b"redirect_stdout\0").map(|sym| *sym)?;
544        let get_debug_level = __library.get(b"get_debug_level\0").map(|sym| *sym)?;
545        let set_debug_level = __library.get(b"set_debug_level\0").map(|sym| *sym)?;
546        let saturation_ancillary = __library.get(b"saturation_ancillary\0").map(|sym| *sym)?;
547        let HAPropsSI = __library.get(b"HAPropsSI\0").map(|sym| *sym)?;
548        let cair_sat = __library.get(b"cair_sat\0").map(|sym| *sym)?;
549        let hapropssi_ = __library.get(b"hapropssi_\0").map(|sym| *sym)?;
550        let HAProps = __library.get(b"HAProps\0").map(|sym| *sym)?;
551        let haprops_ = __library.get(b"haprops_\0").map(|sym| *sym)?;
552        let AbstractState_factory = __library.get(b"AbstractState_factory\0").map(|sym| *sym)?;
553        let AbstractState_fluid_names =
554            __library.get(b"AbstractState_fluid_names\0").map(|sym| *sym)?;
555        let AbstractState_free = __library.get(b"AbstractState_free\0").map(|sym| *sym)?;
556        let AbstractState_set_fractions =
557            __library.get(b"AbstractState_set_fractions\0").map(|sym| *sym)?;
558        let AbstractState_get_mole_fractions =
559            __library.get(b"AbstractState_get_mole_fractions\0").map(|sym| *sym)?;
560        let AbstractState_get_mole_fractions_satState =
561            __library.get(b"AbstractState_get_mole_fractions_satState\0").map(|sym| *sym)?;
562        let AbstractState_get_fugacity =
563            __library.get(b"AbstractState_get_fugacity\0").map(|sym| *sym)?;
564        let AbstractState_get_fugacity_coefficient =
565            __library.get(b"AbstractState_get_fugacity_coefficient\0").map(|sym| *sym)?;
566        let AbstractState_update = __library.get(b"AbstractState_update\0").map(|sym| *sym)?;
567        let AbstractState_specify_phase =
568            __library.get(b"AbstractState_specify_phase\0").map(|sym| *sym)?;
569        let AbstractState_unspecify_phase =
570            __library.get(b"AbstractState_unspecify_phase\0").map(|sym| *sym)?;
571        let AbstractState_keyed_output =
572            __library.get(b"AbstractState_keyed_output\0").map(|sym| *sym)?;
573        let AbstractState_first_saturation_deriv =
574            __library.get(b"AbstractState_first_saturation_deriv\0").map(|sym| *sym)?;
575        let AbstractState_first_partial_deriv =
576            __library.get(b"AbstractState_first_partial_deriv\0").map(|sym| *sym)?;
577        let AbstractState_second_two_phase_deriv =
578            __library.get(b"AbstractState_second_two_phase_deriv\0").map(|sym| *sym)?;
579        let AbstractState_second_partial_deriv =
580            __library.get(b"AbstractState_second_partial_deriv\0").map(|sym| *sym)?;
581        let AbstractState_first_two_phase_deriv_splined =
582            __library.get(b"AbstractState_first_two_phase_deriv_splined\0").map(|sym| *sym)?;
583        let AbstractState_first_two_phase_deriv =
584            __library.get(b"AbstractState_first_two_phase_deriv\0").map(|sym| *sym)?;
585        let AbstractState_update_and_common_out =
586            __library.get(b"AbstractState_update_and_common_out\0").map(|sym| *sym)?;
587        let AbstractState_update_and_1_out =
588            __library.get(b"AbstractState_update_and_1_out\0").map(|sym| *sym)?;
589        let AbstractState_update_and_5_out =
590            __library.get(b"AbstractState_update_and_5_out\0").map(|sym| *sym)?;
591        let AbstractState_set_binary_interaction_double =
592            __library.get(b"AbstractState_set_binary_interaction_double\0").map(|sym| *sym)?;
593        let AbstractState_set_cubic_alpha_C =
594            __library.get(b"AbstractState_set_cubic_alpha_C\0").map(|sym| *sym)?;
595        let AbstractState_set_fluid_parameter_double =
596            __library.get(b"AbstractState_set_fluid_parameter_double\0").map(|sym| *sym)?;
597        let AbstractState_build_phase_envelope =
598            __library.get(b"AbstractState_build_phase_envelope\0").map(|sym| *sym)?;
599        let AbstractState_get_phase_envelope_data =
600            __library.get(b"AbstractState_get_phase_envelope_data\0").map(|sym| *sym)?;
601        let AbstractState_get_phase_envelope_data_checkedMemory = __library
602            .get(b"AbstractState_get_phase_envelope_data_checkedMemory\0")
603            .map(|sym| *sym)?;
604        let AbstractState_build_spinodal =
605            __library.get(b"AbstractState_build_spinodal\0").map(|sym| *sym)?;
606        let AbstractState_get_spinodal_data =
607            __library.get(b"AbstractState_get_spinodal_data\0").map(|sym| *sym)?;
608        let AbstractState_all_critical_points =
609            __library.get(b"AbstractState_all_critical_points\0").map(|sym| *sym)?;
610        let AbstractState_keyed_output_satState =
611            __library.get(b"AbstractState_keyed_output_satState\0").map(|sym| *sym)?;
612        let AbstractState_backend_name =
613            __library.get(b"AbstractState_backend_name\0").map(|sym| *sym)?;
614        let AbstractState_fluid_param_string =
615            __library.get(b"AbstractState_fluid_param_string\0").map(|sym| *sym)?;
616        let AbstractState_phase = __library.get(b"AbstractState_phase\0").map(|sym| *sym)?;
617        let AbstractState_saturated_liquid_keyed_output =
618            __library.get(b"AbstractState_saturated_liquid_keyed_output\0").map(|sym| *sym)?;
619        let AbstractState_saturated_vapor_keyed_output =
620            __library.get(b"AbstractState_saturated_vapor_keyed_output\0").map(|sym| *sym)?;
621        let add_fluids_as_JSON = __library.get(b"add_fluids_as_JSON\0").map(|sym| *sym)?;
622        let C_is_valid_fluid_string =
623            __library.get(b"C_is_valid_fluid_string\0").map(|sym| *sym)?;
624        let C_extract_backend = __library.get(b"C_extract_backend\0").map(|sym| *sym)?;
625        Ok(CoolProp {
626            __library,
627            Props1SI,
628            Props1SImulti,
629            PropsSI,
630            PropsSImulti,
631            PhaseSI,
632            get_global_param_string,
633            get_parameter_information_string,
634            get_fluid_param_string,
635            get_fluid_param_string_len,
636            set_config_string,
637            set_config_double,
638            set_config_bool,
639            set_departure_functions,
640            set_reference_stateS,
641            set_reference_stateD,
642            propssi_,
643            F2K,
644            K2F,
645            get_param_index,
646            get_input_pair_index,
647            redirect_stdout,
648            get_debug_level,
649            set_debug_level,
650            saturation_ancillary,
651            HAPropsSI,
652            cair_sat,
653            hapropssi_,
654            HAProps,
655            haprops_,
656            AbstractState_factory,
657            AbstractState_fluid_names,
658            AbstractState_free,
659            AbstractState_set_fractions,
660            AbstractState_get_mole_fractions,
661            AbstractState_get_mole_fractions_satState,
662            AbstractState_get_fugacity,
663            AbstractState_get_fugacity_coefficient,
664            AbstractState_update,
665            AbstractState_specify_phase,
666            AbstractState_unspecify_phase,
667            AbstractState_keyed_output,
668            AbstractState_first_saturation_deriv,
669            AbstractState_first_partial_deriv,
670            AbstractState_second_two_phase_deriv,
671            AbstractState_second_partial_deriv,
672            AbstractState_first_two_phase_deriv_splined,
673            AbstractState_first_two_phase_deriv,
674            AbstractState_update_and_common_out,
675            AbstractState_update_and_1_out,
676            AbstractState_update_and_5_out,
677            AbstractState_set_binary_interaction_double,
678            AbstractState_set_cubic_alpha_C,
679            AbstractState_set_fluid_parameter_double,
680            AbstractState_build_phase_envelope,
681            AbstractState_get_phase_envelope_data,
682            AbstractState_get_phase_envelope_data_checkedMemory,
683            AbstractState_build_spinodal,
684            AbstractState_get_spinodal_data,
685            AbstractState_all_critical_points,
686            AbstractState_keyed_output_satState,
687            AbstractState_backend_name,
688            AbstractState_fluid_param_string,
689            AbstractState_phase,
690            AbstractState_saturated_liquid_keyed_output,
691            AbstractState_saturated_vapor_keyed_output,
692            add_fluids_as_JSON,
693            C_is_valid_fluid_string,
694            C_extract_backend,
695        })
696    }
697
698    pub unsafe fn Props1SI(
699        &self,
700        FluidName: *const ::core::ffi::c_char,
701        Output: *const ::core::ffi::c_char,
702    ) -> f64 {
703        (self.Props1SI)(FluidName, Output)
704    }
705
706    pub unsafe fn Props1SImulti(
707        &self,
708        Outputs: *const ::core::ffi::c_char,
709        backend: *mut ::core::ffi::c_char,
710        FluidNames: *const ::core::ffi::c_char,
711        fractions: *const f64,
712        length_fractions: ::core::ffi::c_long,
713        result: *mut f64,
714        resdim1: *mut ::core::ffi::c_long,
715    ) {
716        (self.Props1SImulti)(
717            Outputs,
718            backend,
719            FluidNames,
720            fractions,
721            length_fractions,
722            result,
723            resdim1,
724        )
725    }
726
727    pub unsafe fn PropsSI(
728        &self,
729        Output: *const ::core::ffi::c_char,
730        Name1: *const ::core::ffi::c_char,
731        Prop1: f64,
732        Name2: *const ::core::ffi::c_char,
733        Prop2: f64,
734        FluidName: *const ::core::ffi::c_char,
735    ) -> f64 {
736        (self.PropsSI)(Output, Name1, Prop1, Name2, Prop2, FluidName)
737    }
738
739    pub unsafe fn PropsSImulti(
740        &self,
741        Outputs: *const ::core::ffi::c_char,
742        Name1: *const ::core::ffi::c_char,
743        Prop1: *mut f64,
744        size_Prop1: ::core::ffi::c_long,
745        Name2: *const ::core::ffi::c_char,
746        Prop2: *mut f64,
747        size_Prop2: ::core::ffi::c_long,
748        backend: *mut ::core::ffi::c_char,
749        FluidNames: *const ::core::ffi::c_char,
750        fractions: *const f64,
751        length_fractions: ::core::ffi::c_long,
752        result: *mut f64,
753        resdim1: *mut ::core::ffi::c_long,
754        resdim2: *mut ::core::ffi::c_long,
755    ) {
756        (self.PropsSImulti)(
757            Outputs,
758            Name1,
759            Prop1,
760            size_Prop1,
761            Name2,
762            Prop2,
763            size_Prop2,
764            backend,
765            FluidNames,
766            fractions,
767            length_fractions,
768            result,
769            resdim1,
770            resdim2,
771        )
772    }
773
774    pub unsafe fn PhaseSI(
775        &self,
776        Name1: *const ::core::ffi::c_char,
777        Prop1: f64,
778        Name2: *const ::core::ffi::c_char,
779        Prop2: f64,
780        FluidName: *const ::core::ffi::c_char,
781        phase: *mut ::core::ffi::c_char,
782        n: ::core::ffi::c_int,
783    ) -> ::core::ffi::c_long {
784        (self.PhaseSI)(Name1, Prop1, Name2, Prop2, FluidName, phase, n)
785    }
786
787    pub unsafe fn get_global_param_string(
788        &self,
789        param: *const ::core::ffi::c_char,
790        Output: *mut ::core::ffi::c_char,
791        n: ::core::ffi::c_int,
792    ) -> ::core::ffi::c_long {
793        (self.get_global_param_string)(param, Output, n)
794    }
795
796    pub unsafe fn get_parameter_information_string(
797        &self,
798        param: *const ::core::ffi::c_char,
799        Output: *mut ::core::ffi::c_char,
800        n: ::core::ffi::c_int,
801    ) -> ::core::ffi::c_long {
802        (self.get_parameter_information_string)(param, Output, n)
803    }
804
805    pub unsafe fn get_fluid_param_string(
806        &self,
807        fluid: *const ::core::ffi::c_char,
808        param: *const ::core::ffi::c_char,
809        Output: *mut ::core::ffi::c_char,
810        n: ::core::ffi::c_int,
811    ) -> ::core::ffi::c_long {
812        (self.get_fluid_param_string)(fluid, param, Output, n)
813    }
814
815    pub unsafe fn get_fluid_param_string_len(
816        &self,
817        fluid: *const ::core::ffi::c_char,
818        param: *const ::core::ffi::c_char,
819    ) -> ::core::ffi::c_long {
820        (self.get_fluid_param_string_len)(fluid, param)
821    }
822
823    pub unsafe fn set_config_string(
824        &self,
825        key: *const ::core::ffi::c_char,
826        val: *const ::core::ffi::c_char,
827    ) {
828        (self.set_config_string)(key, val)
829    }
830
831    pub unsafe fn set_config_double(&self, key: *const ::core::ffi::c_char, val: f64) {
832        (self.set_config_double)(key, val)
833    }
834
835    pub unsafe fn set_config_bool(&self, key: *const ::core::ffi::c_char, val: bool) {
836        (self.set_config_bool)(key, val)
837    }
838
839    pub unsafe fn set_departure_functions(
840        &self,
841        string_data: *const ::core::ffi::c_char,
842        errcode: *mut ::core::ffi::c_long,
843        message_buffer: *mut ::core::ffi::c_char,
844        buffer_length: ::core::ffi::c_long,
845    ) {
846        (self.set_departure_functions)(string_data, errcode, message_buffer, buffer_length)
847    }
848
849    pub unsafe fn set_reference_stateS(
850        &self,
851        Ref: *const ::core::ffi::c_char,
852        reference_state: *const ::core::ffi::c_char,
853    ) -> ::core::ffi::c_int {
854        (self.set_reference_stateS)(Ref, reference_state)
855    }
856
857    pub unsafe fn set_reference_stateD(
858        &self,
859        Ref: *const ::core::ffi::c_char,
860        T: f64,
861        rhomolar: f64,
862        hmolar0: f64,
863        smolar0: f64,
864    ) -> ::core::ffi::c_int {
865        (self.set_reference_stateD)(Ref, T, rhomolar, hmolar0, smolar0)
866    }
867
868    pub unsafe fn propssi_(
869        &self,
870        Output: *const ::core::ffi::c_char,
871        Name1: *const ::core::ffi::c_char,
872        Prop1: *const f64,
873        Name2: *const ::core::ffi::c_char,
874        Prop2: *const f64,
875        FluidName: *const ::core::ffi::c_char,
876        output: *mut f64,
877    ) {
878        (self.propssi_)(Output, Name1, Prop1, Name2, Prop2, FluidName, output)
879    }
880
881    pub unsafe fn F2K(&self, T_F: f64) -> f64 {
882        (self.F2K)(T_F)
883    }
884
885    pub unsafe fn K2F(&self, T_K: f64) -> f64 {
886        (self.K2F)(T_K)
887    }
888
889    pub unsafe fn get_param_index(&self, param: *const ::core::ffi::c_char) -> ::core::ffi::c_long {
890        (self.get_param_index)(param)
891    }
892
893    pub unsafe fn get_input_pair_index(
894        &self,
895        pair: *const ::core::ffi::c_char,
896    ) -> ::core::ffi::c_long {
897        (self.get_input_pair_index)(pair)
898    }
899
900    pub unsafe fn redirect_stdout(&self, file: *const ::core::ffi::c_char) -> ::core::ffi::c_long {
901        (self.redirect_stdout)(file)
902    }
903
904    pub unsafe fn get_debug_level(&self) -> ::core::ffi::c_int {
905        (self.get_debug_level)()
906    }
907
908    pub unsafe fn set_debug_level(&self, level: ::core::ffi::c_int) {
909        (self.set_debug_level)(level)
910    }
911
912    pub unsafe fn saturation_ancillary(
913        &self,
914        fluid_name: *const ::core::ffi::c_char,
915        output: *const ::core::ffi::c_char,
916        Q: ::core::ffi::c_int,
917        input: *const ::core::ffi::c_char,
918        value: f64,
919    ) -> f64 {
920        (self.saturation_ancillary)(fluid_name, output, Q, input, value)
921    }
922
923    pub unsafe fn HAPropsSI(
924        &self,
925        Output: *const ::core::ffi::c_char,
926        Name1: *const ::core::ffi::c_char,
927        Prop1: f64,
928        Name2: *const ::core::ffi::c_char,
929        Prop2: f64,
930        Name3: *const ::core::ffi::c_char,
931        Prop3: f64,
932    ) -> f64 {
933        (self.HAPropsSI)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3)
934    }
935
936    pub unsafe fn cair_sat(&self, T: f64) -> f64 {
937        (self.cair_sat)(T)
938    }
939
940    pub unsafe fn hapropssi_(
941        &self,
942        Output: *const ::core::ffi::c_char,
943        Name1: *const ::core::ffi::c_char,
944        Prop1: *const f64,
945        Name2: *const ::core::ffi::c_char,
946        Prop2: *const f64,
947        Name3: *const ::core::ffi::c_char,
948        Prop3: *const f64,
949        output: *mut f64,
950    ) {
951        (self.hapropssi_)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3, output)
952    }
953
954    pub unsafe fn HAProps(
955        &self,
956        Output: *const ::core::ffi::c_char,
957        Name1: *const ::core::ffi::c_char,
958        Prop1: f64,
959        Name2: *const ::core::ffi::c_char,
960        Prop2: f64,
961        Name3: *const ::core::ffi::c_char,
962        Prop3: f64,
963    ) -> f64 {
964        (self.HAProps)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3)
965    }
966
967    pub unsafe fn haprops_(
968        &self,
969        Output: *const ::core::ffi::c_char,
970        Name1: *const ::core::ffi::c_char,
971        Prop1: *const f64,
972        Name2: *const ::core::ffi::c_char,
973        Prop2: *const f64,
974        Name3: *const ::core::ffi::c_char,
975        Prop3: *const f64,
976        output: *mut f64,
977    ) {
978        (self.haprops_)(Output, Name1, Prop1, Name2, Prop2, Name3, Prop3, output)
979    }
980
981    pub unsafe fn AbstractState_factory(
982        &self,
983        backend: *const ::core::ffi::c_char,
984        fluids: *const ::core::ffi::c_char,
985        errcode: *mut ::core::ffi::c_long,
986        message_buffer: *mut ::core::ffi::c_char,
987        buffer_length: ::core::ffi::c_long,
988    ) -> ::core::ffi::c_long {
989        (self.AbstractState_factory)(backend, fluids, errcode, message_buffer, buffer_length)
990    }
991
992    pub unsafe fn AbstractState_fluid_names(
993        &self,
994        handle: ::core::ffi::c_long,
995        fluids: *mut ::core::ffi::c_char,
996        errcode: *mut ::core::ffi::c_long,
997        message_buffer: *mut ::core::ffi::c_char,
998        buffer_length: ::core::ffi::c_long,
999    ) {
1000        (self.AbstractState_fluid_names)(handle, fluids, errcode, message_buffer, buffer_length)
1001    }
1002
1003    pub unsafe fn AbstractState_free(
1004        &self,
1005        handle: ::core::ffi::c_long,
1006        errcode: *mut ::core::ffi::c_long,
1007        message_buffer: *mut ::core::ffi::c_char,
1008        buffer_length: ::core::ffi::c_long,
1009    ) {
1010        (self.AbstractState_free)(handle, errcode, message_buffer, buffer_length)
1011    }
1012
1013    pub unsafe fn AbstractState_set_fractions(
1014        &self,
1015        handle: ::core::ffi::c_long,
1016        fractions: *const f64,
1017        N: ::core::ffi::c_long,
1018        errcode: *mut ::core::ffi::c_long,
1019        message_buffer: *mut ::core::ffi::c_char,
1020        buffer_length: ::core::ffi::c_long,
1021    ) {
1022        (self.AbstractState_set_fractions)(
1023            handle,
1024            fractions,
1025            N,
1026            errcode,
1027            message_buffer,
1028            buffer_length,
1029        )
1030    }
1031
1032    pub unsafe fn AbstractState_get_mole_fractions(
1033        &self,
1034        handle: ::core::ffi::c_long,
1035        fractions: *mut f64,
1036        maxN: ::core::ffi::c_long,
1037        N: *mut ::core::ffi::c_long,
1038        errcode: *mut ::core::ffi::c_long,
1039        message_buffer: *mut ::core::ffi::c_char,
1040        buffer_length: ::core::ffi::c_long,
1041    ) {
1042        (self.AbstractState_get_mole_fractions)(
1043            handle,
1044            fractions,
1045            maxN,
1046            N,
1047            errcode,
1048            message_buffer,
1049            buffer_length,
1050        )
1051    }
1052
1053    pub unsafe fn AbstractState_get_mole_fractions_satState(
1054        &self,
1055        handle: ::core::ffi::c_long,
1056        saturated_state: *const ::core::ffi::c_char,
1057        fractions: *mut f64,
1058        maxN: ::core::ffi::c_long,
1059        N: *mut ::core::ffi::c_long,
1060        errcode: *mut ::core::ffi::c_long,
1061        message_buffer: *mut ::core::ffi::c_char,
1062        buffer_length: ::core::ffi::c_long,
1063    ) {
1064        (self.AbstractState_get_mole_fractions_satState)(
1065            handle,
1066            saturated_state,
1067            fractions,
1068            maxN,
1069            N,
1070            errcode,
1071            message_buffer,
1072            buffer_length,
1073        )
1074    }
1075
1076    pub unsafe fn AbstractState_get_fugacity(
1077        &self,
1078        handle: ::core::ffi::c_long,
1079        i: ::core::ffi::c_long,
1080        errcode: *mut ::core::ffi::c_long,
1081        message_buffer: *mut ::core::ffi::c_char,
1082        buffer_length: ::core::ffi::c_long,
1083    ) -> f64 {
1084        (self.AbstractState_get_fugacity)(handle, i, errcode, message_buffer, buffer_length)
1085    }
1086
1087    pub unsafe fn AbstractState_get_fugacity_coefficient(
1088        &self,
1089        handle: ::core::ffi::c_long,
1090        i: ::core::ffi::c_long,
1091        errcode: *mut ::core::ffi::c_long,
1092        message_buffer: *mut ::core::ffi::c_char,
1093        buffer_length: ::core::ffi::c_long,
1094    ) -> f64 {
1095        (self.AbstractState_get_fugacity_coefficient)(
1096            handle,
1097            i,
1098            errcode,
1099            message_buffer,
1100            buffer_length,
1101        )
1102    }
1103
1104    pub unsafe fn AbstractState_update(
1105        &self,
1106        handle: ::core::ffi::c_long,
1107        input_pair: ::core::ffi::c_long,
1108        value1: f64,
1109        value2: f64,
1110        errcode: *mut ::core::ffi::c_long,
1111        message_buffer: *mut ::core::ffi::c_char,
1112        buffer_length: ::core::ffi::c_long,
1113    ) {
1114        (self.AbstractState_update)(
1115            handle,
1116            input_pair,
1117            value1,
1118            value2,
1119            errcode,
1120            message_buffer,
1121            buffer_length,
1122        )
1123    }
1124
1125    pub unsafe fn AbstractState_specify_phase(
1126        &self,
1127        handle: ::core::ffi::c_long,
1128        phase: *const ::core::ffi::c_char,
1129        errcode: *mut ::core::ffi::c_long,
1130        message_buffer: *mut ::core::ffi::c_char,
1131        buffer_length: ::core::ffi::c_long,
1132    ) {
1133        (self.AbstractState_specify_phase)(handle, phase, errcode, message_buffer, buffer_length)
1134    }
1135
1136    pub unsafe fn AbstractState_unspecify_phase(
1137        &self,
1138        handle: ::core::ffi::c_long,
1139        errcode: *mut ::core::ffi::c_long,
1140        message_buffer: *mut ::core::ffi::c_char,
1141        buffer_length: ::core::ffi::c_long,
1142    ) {
1143        (self.AbstractState_unspecify_phase)(handle, errcode, message_buffer, buffer_length)
1144    }
1145
1146    pub unsafe fn AbstractState_keyed_output(
1147        &self,
1148        handle: ::core::ffi::c_long,
1149        param: ::core::ffi::c_long,
1150        errcode: *mut ::core::ffi::c_long,
1151        message_buffer: *mut ::core::ffi::c_char,
1152        buffer_length: ::core::ffi::c_long,
1153    ) -> f64 {
1154        (self.AbstractState_keyed_output)(handle, param, errcode, message_buffer, buffer_length)
1155    }
1156
1157    pub unsafe fn AbstractState_first_saturation_deriv(
1158        &self,
1159        handle: ::core::ffi::c_long,
1160        Of: ::core::ffi::c_long,
1161        Wrt: ::core::ffi::c_long,
1162        errcode: *mut ::core::ffi::c_long,
1163        message_buffer: *mut ::core::ffi::c_char,
1164        buffer_length: ::core::ffi::c_long,
1165    ) -> f64 {
1166        (self.AbstractState_first_saturation_deriv)(
1167            handle,
1168            Of,
1169            Wrt,
1170            errcode,
1171            message_buffer,
1172            buffer_length,
1173        )
1174    }
1175
1176    pub unsafe fn AbstractState_first_partial_deriv(
1177        &self,
1178        handle: ::core::ffi::c_long,
1179        Of: ::core::ffi::c_long,
1180        Wrt: ::core::ffi::c_long,
1181        Constant: ::core::ffi::c_long,
1182        errcode: *mut ::core::ffi::c_long,
1183        message_buffer: *mut ::core::ffi::c_char,
1184        buffer_length: ::core::ffi::c_long,
1185    ) -> f64 {
1186        (self.AbstractState_first_partial_deriv)(
1187            handle,
1188            Of,
1189            Wrt,
1190            Constant,
1191            errcode,
1192            message_buffer,
1193            buffer_length,
1194        )
1195    }
1196
1197    pub unsafe fn AbstractState_second_two_phase_deriv(
1198        &self,
1199        handle: ::core::ffi::c_long,
1200        Of1: ::core::ffi::c_long,
1201        Wrt1: ::core::ffi::c_long,
1202        Constant1: ::core::ffi::c_long,
1203        Wrt2: ::core::ffi::c_long,
1204        Constant2: ::core::ffi::c_long,
1205        errcode: *mut ::core::ffi::c_long,
1206        message_buffer: *mut ::core::ffi::c_char,
1207        buffer_length: ::core::ffi::c_long,
1208    ) -> f64 {
1209        (self.AbstractState_second_two_phase_deriv)(
1210            handle,
1211            Of1,
1212            Wrt1,
1213            Constant1,
1214            Wrt2,
1215            Constant2,
1216            errcode,
1217            message_buffer,
1218            buffer_length,
1219        )
1220    }
1221
1222    pub unsafe fn AbstractState_second_partial_deriv(
1223        &self,
1224        handle: ::core::ffi::c_long,
1225        Of1: ::core::ffi::c_long,
1226        Wrt1: ::core::ffi::c_long,
1227        Constant1: ::core::ffi::c_long,
1228        Wrt2: ::core::ffi::c_long,
1229        Constant2: ::core::ffi::c_long,
1230        errcode: *mut ::core::ffi::c_long,
1231        message_buffer: *mut ::core::ffi::c_char,
1232        buffer_length: ::core::ffi::c_long,
1233    ) -> f64 {
1234        (self.AbstractState_second_partial_deriv)(
1235            handle,
1236            Of1,
1237            Wrt1,
1238            Constant1,
1239            Wrt2,
1240            Constant2,
1241            errcode,
1242            message_buffer,
1243            buffer_length,
1244        )
1245    }
1246
1247    pub unsafe fn AbstractState_first_two_phase_deriv_splined(
1248        &self,
1249        handle: ::core::ffi::c_long,
1250        Of: ::core::ffi::c_long,
1251        Wrt: ::core::ffi::c_long,
1252        Constant: ::core::ffi::c_long,
1253        x_end: f64,
1254        errcode: *mut ::core::ffi::c_long,
1255        message_buffer: *mut ::core::ffi::c_char,
1256        buffer_length: ::core::ffi::c_long,
1257    ) -> f64 {
1258        (self.AbstractState_first_two_phase_deriv_splined)(
1259            handle,
1260            Of,
1261            Wrt,
1262            Constant,
1263            x_end,
1264            errcode,
1265            message_buffer,
1266            buffer_length,
1267        )
1268    }
1269
1270    pub unsafe fn AbstractState_first_two_phase_deriv(
1271        &self,
1272        handle: ::core::ffi::c_long,
1273        Of: ::core::ffi::c_long,
1274        Wrt: ::core::ffi::c_long,
1275        Constant: ::core::ffi::c_long,
1276        errcode: *mut ::core::ffi::c_long,
1277        message_buffer: *mut ::core::ffi::c_char,
1278        buffer_length: ::core::ffi::c_long,
1279    ) -> f64 {
1280        (self.AbstractState_first_two_phase_deriv)(
1281            handle,
1282            Of,
1283            Wrt,
1284            Constant,
1285            errcode,
1286            message_buffer,
1287            buffer_length,
1288        )
1289    }
1290
1291    pub unsafe fn AbstractState_update_and_common_out(
1292        &self,
1293        handle: ::core::ffi::c_long,
1294        input_pair: ::core::ffi::c_long,
1295        value1: *const f64,
1296        value2: *const f64,
1297        length: ::core::ffi::c_long,
1298        T: *mut f64,
1299        p: *mut f64,
1300        rhomolar: *mut f64,
1301        hmolar: *mut f64,
1302        smolar: *mut f64,
1303        errcode: *mut ::core::ffi::c_long,
1304        message_buffer: *mut ::core::ffi::c_char,
1305        buffer_length: ::core::ffi::c_long,
1306    ) {
1307        (self.AbstractState_update_and_common_out)(
1308            handle,
1309            input_pair,
1310            value1,
1311            value2,
1312            length,
1313            T,
1314            p,
1315            rhomolar,
1316            hmolar,
1317            smolar,
1318            errcode,
1319            message_buffer,
1320            buffer_length,
1321        )
1322    }
1323
1324    pub unsafe fn AbstractState_update_and_1_out(
1325        &self,
1326        handle: ::core::ffi::c_long,
1327        input_pair: ::core::ffi::c_long,
1328        value1: *const f64,
1329        value2: *const f64,
1330        length: ::core::ffi::c_long,
1331        output: ::core::ffi::c_long,
1332        out: *mut f64,
1333        errcode: *mut ::core::ffi::c_long,
1334        message_buffer: *mut ::core::ffi::c_char,
1335        buffer_length: ::core::ffi::c_long,
1336    ) {
1337        (self.AbstractState_update_and_1_out)(
1338            handle,
1339            input_pair,
1340            value1,
1341            value2,
1342            length,
1343            output,
1344            out,
1345            errcode,
1346            message_buffer,
1347            buffer_length,
1348        )
1349    }
1350
1351    pub unsafe fn AbstractState_update_and_5_out(
1352        &self,
1353        handle: ::core::ffi::c_long,
1354        input_pair: ::core::ffi::c_long,
1355        value1: *const f64,
1356        value2: *const f64,
1357        length: ::core::ffi::c_long,
1358        outputs: *mut ::core::ffi::c_long,
1359        out1: *mut f64,
1360        out2: *mut f64,
1361        out3: *mut f64,
1362        out4: *mut f64,
1363        out5: *mut f64,
1364        errcode: *mut ::core::ffi::c_long,
1365        message_buffer: *mut ::core::ffi::c_char,
1366        buffer_length: ::core::ffi::c_long,
1367    ) {
1368        (self.AbstractState_update_and_5_out)(
1369            handle,
1370            input_pair,
1371            value1,
1372            value2,
1373            length,
1374            outputs,
1375            out1,
1376            out2,
1377            out3,
1378            out4,
1379            out5,
1380            errcode,
1381            message_buffer,
1382            buffer_length,
1383        )
1384    }
1385
1386    pub unsafe fn AbstractState_set_binary_interaction_double(
1387        &self,
1388        handle: ::core::ffi::c_long,
1389        i: ::core::ffi::c_long,
1390        j: ::core::ffi::c_long,
1391        parameter: *const ::core::ffi::c_char,
1392        value: f64,
1393        errcode: *mut ::core::ffi::c_long,
1394        message_buffer: *mut ::core::ffi::c_char,
1395        buffer_length: ::core::ffi::c_long,
1396    ) {
1397        (self.AbstractState_set_binary_interaction_double)(
1398            handle,
1399            i,
1400            j,
1401            parameter,
1402            value,
1403            errcode,
1404            message_buffer,
1405            buffer_length,
1406        )
1407    }
1408
1409    pub unsafe fn AbstractState_set_cubic_alpha_C(
1410        &self,
1411        handle: ::core::ffi::c_long,
1412        i: ::core::ffi::c_long,
1413        parameter: *const ::core::ffi::c_char,
1414        c1: f64,
1415        c2: f64,
1416        c3: f64,
1417        errcode: *mut ::core::ffi::c_long,
1418        message_buffer: *mut ::core::ffi::c_char,
1419        buffer_length: ::core::ffi::c_long,
1420    ) {
1421        (self.AbstractState_set_cubic_alpha_C)(
1422            handle,
1423            i,
1424            parameter,
1425            c1,
1426            c2,
1427            c3,
1428            errcode,
1429            message_buffer,
1430            buffer_length,
1431        )
1432    }
1433
1434    pub unsafe fn AbstractState_set_fluid_parameter_double(
1435        &self,
1436        handle: ::core::ffi::c_long,
1437        i: ::core::ffi::c_long,
1438        parameter: *const ::core::ffi::c_char,
1439        value: f64,
1440        errcode: *mut ::core::ffi::c_long,
1441        message_buffer: *mut ::core::ffi::c_char,
1442        buffer_length: ::core::ffi::c_long,
1443    ) {
1444        (self.AbstractState_set_fluid_parameter_double)(
1445            handle,
1446            i,
1447            parameter,
1448            value,
1449            errcode,
1450            message_buffer,
1451            buffer_length,
1452        )
1453    }
1454
1455    pub unsafe fn AbstractState_build_phase_envelope(
1456        &self,
1457        handle: ::core::ffi::c_long,
1458        level: *const ::core::ffi::c_char,
1459        errcode: *mut ::core::ffi::c_long,
1460        message_buffer: *mut ::core::ffi::c_char,
1461        buffer_length: ::core::ffi::c_long,
1462    ) {
1463        (self.AbstractState_build_phase_envelope)(
1464            handle,
1465            level,
1466            errcode,
1467            message_buffer,
1468            buffer_length,
1469        )
1470    }
1471
1472    pub unsafe fn AbstractState_get_phase_envelope_data(
1473        &self,
1474        handle: ::core::ffi::c_long,
1475        length: ::core::ffi::c_long,
1476        T: *mut f64,
1477        p: *mut f64,
1478        rhomolar_vap: *mut f64,
1479        rhomolar_liq: *mut f64,
1480        x: *mut f64,
1481        y: *mut f64,
1482        errcode: *mut ::core::ffi::c_long,
1483        message_buffer: *mut ::core::ffi::c_char,
1484        buffer_length: ::core::ffi::c_long,
1485    ) {
1486        (self.AbstractState_get_phase_envelope_data)(
1487            handle,
1488            length,
1489            T,
1490            p,
1491            rhomolar_vap,
1492            rhomolar_liq,
1493            x,
1494            y,
1495            errcode,
1496            message_buffer,
1497            buffer_length,
1498        )
1499    }
1500
1501    pub unsafe fn AbstractState_get_phase_envelope_data_checkedMemory(
1502        &self,
1503        handle: ::core::ffi::c_long,
1504        length: ::core::ffi::c_long,
1505        maxComponents: ::core::ffi::c_long,
1506        T: *mut f64,
1507        p: *mut f64,
1508        rhomolar_vap: *mut f64,
1509        rhomolar_liq: *mut f64,
1510        x: *mut f64,
1511        y: *mut f64,
1512        actual_length: *mut ::core::ffi::c_long,
1513        actual_components: *mut ::core::ffi::c_long,
1514        errcode: *mut ::core::ffi::c_long,
1515        message_buffer: *mut ::core::ffi::c_char,
1516        buffer_length: ::core::ffi::c_long,
1517    ) {
1518        (self.AbstractState_get_phase_envelope_data_checkedMemory)(
1519            handle,
1520            length,
1521            maxComponents,
1522            T,
1523            p,
1524            rhomolar_vap,
1525            rhomolar_liq,
1526            x,
1527            y,
1528            actual_length,
1529            actual_components,
1530            errcode,
1531            message_buffer,
1532            buffer_length,
1533        )
1534    }
1535
1536    pub unsafe fn AbstractState_build_spinodal(
1537        &self,
1538        handle: ::core::ffi::c_long,
1539        errcode: *mut ::core::ffi::c_long,
1540        message_buffer: *mut ::core::ffi::c_char,
1541        buffer_length: ::core::ffi::c_long,
1542    ) {
1543        (self.AbstractState_build_spinodal)(handle, errcode, message_buffer, buffer_length)
1544    }
1545
1546    pub unsafe fn AbstractState_get_spinodal_data(
1547        &self,
1548        handle: ::core::ffi::c_long,
1549        length: ::core::ffi::c_long,
1550        tau: *mut f64,
1551        delta: *mut f64,
1552        M1: *mut f64,
1553        errcode: *mut ::core::ffi::c_long,
1554        message_buffer: *mut ::core::ffi::c_char,
1555        buffer_length: ::core::ffi::c_long,
1556    ) {
1557        (self.AbstractState_get_spinodal_data)(
1558            handle,
1559            length,
1560            tau,
1561            delta,
1562            M1,
1563            errcode,
1564            message_buffer,
1565            buffer_length,
1566        )
1567    }
1568
1569    pub unsafe fn AbstractState_all_critical_points(
1570        &self,
1571        handle: ::core::ffi::c_long,
1572        length: ::core::ffi::c_long,
1573        T: *mut f64,
1574        p: *mut f64,
1575        rhomolar: *mut f64,
1576        stable: *mut ::core::ffi::c_long,
1577        errcode: *mut ::core::ffi::c_long,
1578        message_buffer: *mut ::core::ffi::c_char,
1579        buffer_length: ::core::ffi::c_long,
1580    ) {
1581        (self.AbstractState_all_critical_points)(
1582            handle,
1583            length,
1584            T,
1585            p,
1586            rhomolar,
1587            stable,
1588            errcode,
1589            message_buffer,
1590            buffer_length,
1591        )
1592    }
1593
1594    pub unsafe fn AbstractState_keyed_output_satState(
1595        &self,
1596        handle: ::core::ffi::c_long,
1597        saturated_state: *const ::core::ffi::c_char,
1598        param: ::core::ffi::c_long,
1599        errcode: *mut ::core::ffi::c_long,
1600        message_buffer: *mut ::core::ffi::c_char,
1601        buffer_length: ::core::ffi::c_long,
1602    ) -> f64 {
1603        (self.AbstractState_keyed_output_satState)(
1604            handle,
1605            saturated_state,
1606            param,
1607            errcode,
1608            message_buffer,
1609            buffer_length,
1610        )
1611    }
1612
1613    pub unsafe fn AbstractState_backend_name(
1614        &self,
1615        handle: ::core::ffi::c_long,
1616        backend: *mut ::core::ffi::c_char,
1617        errcode: *mut ::core::ffi::c_long,
1618        message_buffer: *mut ::core::ffi::c_char,
1619        buffer_length: ::core::ffi::c_long,
1620    ) {
1621        (self.AbstractState_backend_name)(handle, backend, errcode, message_buffer, buffer_length)
1622    }
1623
1624    pub unsafe fn AbstractState_fluid_param_string(
1625        &self,
1626        handle: ::core::ffi::c_long,
1627        param: *const ::core::ffi::c_char,
1628        return_buffer: *mut ::core::ffi::c_char,
1629        return_buffer_length: ::core::ffi::c_long,
1630        errcode: *mut ::core::ffi::c_long,
1631        message_buffer: *mut ::core::ffi::c_char,
1632        buffer_length: ::core::ffi::c_long,
1633    ) {
1634        (self.AbstractState_fluid_param_string)(
1635            handle,
1636            param,
1637            return_buffer,
1638            return_buffer_length,
1639            errcode,
1640            message_buffer,
1641            buffer_length,
1642        )
1643    }
1644
1645    pub unsafe fn AbstractState_phase(
1646        &self,
1647        handle: ::core::ffi::c_long,
1648        errcode: *mut ::core::ffi::c_long,
1649        message_buffer: *mut ::core::ffi::c_char,
1650        buffer_length: ::core::ffi::c_long,
1651    ) -> ::core::ffi::c_int {
1652        (self.AbstractState_phase)(handle, errcode, message_buffer, buffer_length)
1653    }
1654
1655    pub unsafe fn AbstractState_saturated_liquid_keyed_output(
1656        &self,
1657        handle: ::core::ffi::c_long,
1658        param: ::core::ffi::c_long,
1659        errcode: *mut ::core::ffi::c_long,
1660        message_buffer: *mut ::core::ffi::c_char,
1661        buffer_length: ::core::ffi::c_long,
1662    ) -> f64 {
1663        (self.AbstractState_saturated_liquid_keyed_output)(
1664            handle,
1665            param,
1666            errcode,
1667            message_buffer,
1668            buffer_length,
1669        )
1670    }
1671
1672    pub unsafe fn AbstractState_saturated_vapor_keyed_output(
1673        &self,
1674        handle: ::core::ffi::c_long,
1675        param: ::core::ffi::c_long,
1676        errcode: *mut ::core::ffi::c_long,
1677        message_buffer: *mut ::core::ffi::c_char,
1678        buffer_length: ::core::ffi::c_long,
1679    ) -> f64 {
1680        (self.AbstractState_saturated_vapor_keyed_output)(
1681            handle,
1682            param,
1683            errcode,
1684            message_buffer,
1685            buffer_length,
1686        )
1687    }
1688
1689    pub unsafe fn add_fluids_as_JSON(
1690        &self,
1691        backend: *const ::core::ffi::c_char,
1692        fluidstring: *const ::core::ffi::c_char,
1693        errcode: *mut ::core::ffi::c_long,
1694        message_buffer: *mut ::core::ffi::c_char,
1695        buffer_length: ::core::ffi::c_long,
1696    ) {
1697        (self.add_fluids_as_JSON)(backend, fluidstring, errcode, message_buffer, buffer_length)
1698    }
1699
1700    pub unsafe fn C_is_valid_fluid_string(
1701        &self,
1702        fluidName: *const ::core::ffi::c_char,
1703    ) -> ::core::ffi::c_int {
1704        (self.C_is_valid_fluid_string)(fluidName)
1705    }
1706
1707    pub unsafe fn C_extract_backend(
1708        &self,
1709        fluid_string: *const ::core::ffi::c_char,
1710        backend: *mut ::core::ffi::c_char,
1711        backend_length: ::core::ffi::c_long,
1712        fluid: *mut ::core::ffi::c_char,
1713        fluid_length: ::core::ffi::c_long,
1714    ) -> ::core::ffi::c_int {
1715        (self.C_extract_backend)(fluid_string, backend, backend_length, fluid, fluid_length)
1716    }
1717}