iconv_sys/
lib.rs

1#![deny(warnings)]
2#![doc(test(attr(deny(warnings))))]
3#![doc(test(attr(allow(dead_code))))]
4#![doc(test(attr(allow(unused_variables))))]
5
6#![no_std]
7
8use libc::{c_char, c_int, size_t};
9
10include!(concat!(env!("OUT_DIR"), "/iconv_types.rs"));
11
12#[allow(non_camel_case_types)]
13#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
14#[repr(transparent)]
15pub struct iconv_t(pub IconvTRaw);
16
17impl iconv_t {
18    pub const ERROR: iconv_t = iconv_t(-1);
19}
20
21extern "C" {
22    pub fn iconv_open(tocode: *const c_char, fromcode: *const c_char) -> iconv_t;
23    pub fn iconv(
24        cd: iconv_t,
25        inbuf: *mut *mut c_char,
26        inbytesleft: *mut size_t,
27        outbuf: *mut *mut c_char,
28        outbytesleft: *mut size_t,
29    ) -> size_t;
30    pub fn iconv_close(cd: iconv_t) -> c_int;
31}