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}