cargo_crates_io_docs_rs_test/
lib.rs

1// Suppress the flurry of warnings caused by using "C" naming conventions
2#![allow(non_upper_case_globals)]
3#![allow(non_camel_case_types)]
4#![allow(non_snake_case)]
5// Disable clippy since this is all bindgen generated code
6#![allow(clippy::all)]
7#![no_std]
8
9// This matches bindgen::Builder output
10include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
11
12#[cfg(not(feature = "legacy-111-rc4"))]
13impl nng_stat_type_enum {
14    /// Converts value returned by [nng_stat_type](https://nanomsg.github.io/nng/man/v1.1.0/nng_stat_type.3) into `nng_stat_type_enum`.
15    pub fn from_i32(value: i32) -> Option<nng_stat_type_enum> {
16        use nng_stat_type_enum::*;
17        match value {
18            value if value == NNG_STAT_SCOPE as i32 => Some(NNG_STAT_SCOPE),
19            value if value == NNG_STAT_LEVEL as i32 => Some(NNG_STAT_LEVEL),
20            value if value == NNG_STAT_COUNTER as i32 => Some(NNG_STAT_COUNTER),
21            value if value == NNG_STAT_STRING as i32 => Some(NNG_STAT_STRING),
22            value if value == NNG_STAT_BOOLEAN as i32 => Some(NNG_STAT_BOOLEAN),
23            value if value == NNG_STAT_ID as i32 => Some(NNG_STAT_ID),
24            _ => None,
25        }
26    }
27}
28
29#[cfg(not(feature = "legacy-111-rc4"))]
30impl nng_unit_enum {
31    /// Converts value returned by [nng_stat_unit](https://nanomsg.github.io/nng/man/v1.1.0/nng_stat_unit.3) into `nng_unit_enum`.
32    pub fn from_i32(value: i32) -> Option<nng_unit_enum> {
33        use nng_unit_enum::*;
34        match value {
35            value if value == NNG_UNIT_NONE as i32 => Some(NNG_UNIT_NONE),
36            value if value == NNG_UNIT_BYTES as i32 => Some(NNG_UNIT_BYTES),
37            value if value == NNG_UNIT_MESSAGES as i32 => Some(NNG_UNIT_MESSAGES),
38            value if value == NNG_UNIT_MILLIS as i32 => Some(NNG_UNIT_MILLIS),
39            value if value == NNG_UNIT_EVENTS as i32 => Some(NNG_UNIT_EVENTS),
40            _ => None,
41        }
42    }
43}
44
45#[cfg(not(feature = "legacy-111-rc4"))]
46impl nng_errno_enum {
47    /// Converts value returned by NNG method into `error::Error`.
48    #[allow(clippy::cyclomatic_complexity)]
49    pub fn from_i32(value: i32) -> Option<nng_errno_enum> {
50        use nng_errno_enum::*;
51        match value {
52            value if value == NNG_EINTR as i32 => Some(NNG_EINTR),
53            value if value == NNG_ENOMEM as i32 => Some(NNG_ENOMEM),
54            value if value == NNG_EINVAL as i32 => Some(NNG_EINVAL),
55            value if value == NNG_EBUSY as i32 => Some(NNG_EBUSY),
56            value if value == NNG_ETIMEDOUT as i32 => Some(NNG_ETIMEDOUT),
57            value if value == NNG_ECONNREFUSED as i32 => Some(NNG_ECONNREFUSED),
58            value if value == NNG_ECLOSED as i32 => Some(NNG_ECLOSED),
59            value if value == NNG_EAGAIN as i32 => Some(NNG_EAGAIN),
60            value if value == NNG_ENOTSUP as i32 => Some(NNG_ENOTSUP),
61            value if value == NNG_EADDRINUSE as i32 => Some(NNG_EADDRINUSE),
62            value if value == NNG_ESTATE as i32 => Some(NNG_ESTATE),
63            value if value == NNG_ENOENT as i32 => Some(NNG_ENOENT),
64            value if value == NNG_EPROTO as i32 => Some(NNG_EPROTO),
65            value if value == NNG_EUNREACHABLE as i32 => Some(NNG_EUNREACHABLE),
66            value if value == NNG_EADDRINVAL as i32 => Some(NNG_EADDRINVAL),
67            value if value == NNG_EPERM as i32 => Some(NNG_EPERM),
68            value if value == NNG_EMSGSIZE as i32 => Some(NNG_EMSGSIZE),
69            value if value == NNG_ECONNABORTED as i32 => Some(NNG_ECONNABORTED),
70            value if value == NNG_ECONNRESET as i32 => Some(NNG_ECONNRESET),
71            value if value == NNG_ECANCELED as i32 => Some(NNG_ECANCELED),
72            value if value == NNG_ENOFILES as i32 => Some(NNG_ENOFILES),
73            value if value == NNG_ENOSPC as i32 => Some(NNG_ENOSPC),
74            value if value == NNG_EEXIST as i32 => Some(NNG_EEXIST),
75            value if value == NNG_EREADONLY as i32 => Some(NNG_EREADONLY),
76            value if value == NNG_EWRITEONLY as i32 => Some(NNG_EWRITEONLY),
77            value if value == NNG_ECRYPTO as i32 => Some(NNG_ECRYPTO),
78            value if value == NNG_EPEERAUTH as i32 => Some(NNG_EPEERAUTH),
79            value if value == NNG_ENOARG as i32 => Some(NNG_ENOARG),
80            value if value == NNG_EAMBIGUOUS as i32 => Some(NNG_EAMBIGUOUS),
81            value if value == NNG_EBADTYPE as i32 => Some(NNG_EBADTYPE),
82            value if value == NNG_EINTERNAL as i32 => Some(NNG_EINTERNAL),
83            value if value == NNG_ESYSERR as i32 => Some(NNG_ESYSERR),
84            value if value == NNG_ETRANERR as i32 => Some(NNG_ETRANERR),
85
86            _ => None,
87        }
88    }
89}
90
91#[cfg(not(feature = "legacy-111-rc4"))]
92impl nng_pipe_ev {
93    pub fn from_i32(value: i32) -> Option<nng_pipe_ev> {
94        use nng_pipe_ev::*;
95        match value {
96            value if value == NNG_PIPE_EV_ADD_PRE as i32 => Some(NNG_PIPE_EV_ADD_PRE),
97            value if value == NNG_PIPE_EV_ADD_POST as i32 => Some(NNG_PIPE_EV_ADD_POST),
98            value if value == NNG_PIPE_EV_REM_POST as i32 => Some(NNG_PIPE_EV_REM_POST),
99            _ => None,
100        }
101    }
102}