use core::ffi::{c_char, c_int};

use crate::{
    error::CResult,
    headers::wchar::{mbstate_t, multibyte::mbrtowc},
    types::wchar_t,
};

#[no_mangle]
unsafe extern "C" fn mblen(_s: *const c_char, _n: usize) -> c_int {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn mbstowcs(_dst: *mut wchar_t, _src: *const c_char, _n: usize) -> usize {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn mbtowc(dst: *mut wchar_t, src: *const c_char, n: usize) -> c_int {
    let mut state = mbstate_t { __dummy: 0 };
    mbrtowc(dst, src, n, &mut state).into_inner() as c_int
}

#[no_mangle]
unsafe extern "C" fn wcstombs(_dst: *mut c_char, _src: *const wchar_t, _n: usize) -> usize {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wctomb(_dst: *mut c_char, _wc: wchar_t) -> c_int {
    todo!()
}
