use core::ffi::{c_double, c_float, c_int, c_long, c_longlong, c_ulong, c_ulonglong};

use crate::{
    headers::{locale::locale_t, time::__ygg_tm_t},
    types::wchar_t,
};

#[no_mangle]
unsafe extern "C" fn btowc(_b: c_int) -> wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wctob(_wc: wchar_t) -> c_int {
    todo!()
}

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

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

#[no_mangle]
unsafe extern "C" fn wcscasecmp(_s1: *const wchar_t, _s2: *const wchar_t) -> c_int {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcscasecmp_l(
    _s1: *const wchar_t,
    _s2: *const wchar_t,
    _locale: locale_t,
) -> c_int {
    todo!()
}

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

#[no_mangle]
unsafe extern "C" fn wcschr(_str: *const wchar_t, _wc: wchar_t) -> *mut wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcscmp(_s1: *const wchar_t, _s2: *const wchar_t) -> c_int {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcscoll(_s1: *const wchar_t, _s2: *const wchar_t) -> c_int {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcscoll_l(
    _s1: *const wchar_t,
    _s2: *const wchar_t,
    _locale: locale_t,
) -> c_int {
    todo!()
}

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

#[no_mangle]
unsafe extern "C" fn wcscspn(_s1: *const wchar_t, _s2: *const wchar_t) -> usize {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcsdup(_src: *const wchar_t) -> *mut wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcsftime(
    _buf: *mut wchar_t,
    _buflen: usize,
    _fmt: *const wchar_t,
    _tm: *const __ygg_tm_t,
) -> usize {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcslen(_str: *const wchar_t) -> usize {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcsncasecmp(_s1: *const wchar_t, _s2: *const wchar_t, _n: usize) -> c_int {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcsncasecmp_l(
    _s1: *const wchar_t,
    _s2: *const wchar_t,
    _n: usize,
    _locale: locale_t,
) -> c_int {
    todo!()
}

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

#[no_mangle]
unsafe extern "C" fn wcsncmp(_s1: *const wchar_t, _s2: *const wchar_t, _len: usize) -> c_int {
    todo!()
}

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

#[no_mangle]
unsafe extern "C" fn wcsnlen(_str: *const wchar_t, _len: usize) -> usize {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcspbrk(_str: *const wchar_t, _brk: *const wchar_t) -> *mut wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcsrchr(_str: *const wchar_t, _wc: wchar_t) -> *mut wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcsspn(_str: *const wchar_t, _spn: *const wchar_t) -> usize {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcsstr(_s1: *const wchar_t, _s2: *const wchar_t) -> *mut wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstod(_str: *const wchar_t, _endptr: *mut *mut wchar_t) -> c_double {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstof(_str: *const wchar_t, _endptr: *mut *mut wchar_t) -> c_float {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstok(
    _s1: *const wchar_t,
    _s2: *const wchar_t,
    _out: *mut *mut wchar_t,
) -> *mut wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstol(
    _str: *const wchar_t,
    _endptr: *mut *mut wchar_t,
    _base: c_int,
) -> c_long {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstold(_str: *const wchar_t, _endptr: *mut *mut wchar_t) -> c_double {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstoll(
    _str: *const wchar_t,
    _endptr: *mut *mut wchar_t,
    _base: c_int,
) -> c_longlong {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstoul(
    _str: *const wchar_t,
    _endptr: *mut *mut wchar_t,
    _base: c_int,
) -> c_ulong {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wcstoull(
    _str: *const wchar_t,
    _endptr: *mut *mut wchar_t,
    _base: c_int,
) -> c_ulonglong {
    todo!()
}

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

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

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

#[no_mangle]
unsafe extern "C" fn wcwidth(_wc: wchar_t) -> c_int {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wmemchr(_buf: *const wchar_t, _wc: wchar_t, _n: usize) -> *mut wchar_t {
    todo!()
}

#[no_mangle]
unsafe extern "C" fn wmemcmp(_s1: *const wchar_t, _s2: *const wchar_t, _n: usize) -> c_int {
    todo!()
}

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

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

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