diff options
Diffstat (limited to 'vendor/windows-sys-0.45.0/src/core')
-rw-r--r-- | vendor/windows-sys-0.45.0/src/core/literals.rs | 115 | ||||
-rw-r--r-- | vendor/windows-sys-0.45.0/src/core/mod.rs | 76 |
2 files changed, 0 insertions, 191 deletions
diff --git a/vendor/windows-sys-0.45.0/src/core/literals.rs b/vendor/windows-sys-0.45.0/src/core/literals.rs deleted file mode 100644 index a8b3a2f..0000000 --- a/vendor/windows-sys-0.45.0/src/core/literals.rs +++ /dev/null @@ -1,115 +0,0 @@ -/// A literal UTF-8 string with a trailing null terminator. -#[macro_export] -macro_rules! s { - ($s:literal) => { - ::core::concat!($s, '\0').as_ptr() - }; -} - -/// A literal UTF-16 wide string with a trailing null terminator. -#[macro_export] -macro_rules! w { - ($s:literal) => {{ - const INPUT: &[u8] = $s.as_bytes(); - const OUTPUT_LEN: usize = $crate::core::utf16_len(INPUT) + 1; - const OUTPUT: &[u16; OUTPUT_LEN] = { - let mut buffer = [0; OUTPUT_LEN]; - let mut input_pos = 0; - let mut output_pos = 0; - while let Some((mut code_point, new_pos)) = $crate::core::decode_utf8_char(INPUT, input_pos) { - input_pos = new_pos; - if code_point <= 0xffff { - buffer[output_pos] = code_point as u16; - output_pos += 1; - } else { - code_point -= 0x10000; - buffer[output_pos] = 0xd800 + (code_point >> 10) as u16; - output_pos += 1; - buffer[output_pos] = 0xdc00 + (code_point & 0x3ff) as u16; - output_pos += 1; - } - } - &{ buffer } - }; - OUTPUT.as_ptr() - }}; -} - -// Ensures that the macros are exported from the `windows::core` module. -pub use s; -pub use w; - -#[doc(hidden)] -pub const fn decode_utf8_char(bytes: &[u8], mut pos: usize) -> Option<(u32, usize)> { - if bytes.len() == pos { - return None; - } - let ch = bytes[pos] as u32; - pos += 1; - if ch <= 0x7f { - return Some((ch, pos)); - } - if (ch & 0xe0) == 0xc0 { - if bytes.len() - pos < 1 { - return None; - } - let ch2 = bytes[pos] as u32; - pos += 1; - if (ch2 & 0xc0) != 0x80 { - return None; - } - let result: u32 = ((ch & 0x1f) << 6) | (ch2 & 0x3f); - if result <= 0x7f { - return None; - } - return Some((result, pos)); - } - if (ch & 0xf0) == 0xe0 { - if bytes.len() - pos < 2 { - return None; - } - let ch2 = bytes[pos] as u32; - pos += 1; - let ch3 = bytes[pos] as u32; - pos += 1; - if (ch2 & 0xc0) != 0x80 || (ch3 & 0xc0) != 0x80 { - return None; - } - let result = ((ch & 0x0f) << 12) | ((ch2 & 0x3f) << 6) | (ch3 & 0x3f); - if result <= 0x7ff || (0xd800 <= result && result <= 0xdfff) { - return None; - } - return Some((result, pos)); - } - if (ch & 0xf8) == 0xf0 { - if bytes.len() - pos < 3 { - return None; - } - let ch2 = bytes[pos] as u32; - pos += 1; - let ch3 = bytes[pos] as u32; - pos += 1; - let ch4 = bytes[pos] as u32; - pos += 1; - if (ch2 & 0xc0) != 0x80 || (ch3 & 0xc0) != 0x80 || (ch4 & 0xc0) != 0x80 { - return None; - } - let result = ((ch & 0x07) << 18) | ((ch2 & 0x3f) << 12) | ((ch3 & 0x3f) << 6) | (ch4 & 0x3f); - if result <= 0xffff || 0x10ffff < result { - return None; - } - return Some((result, pos)); - } - None -} - -#[doc(hidden)] -pub const fn utf16_len(bytes: &[u8]) -> usize { - let mut pos = 0; - let mut len = 0; - while let Some((code_point, new_pos)) = decode_utf8_char(bytes, pos) { - pos = new_pos; - len += if code_point <= 0xffff { 1 } else { 2 }; - } - len -} diff --git a/vendor/windows-sys-0.45.0/src/core/mod.rs b/vendor/windows-sys-0.45.0/src/core/mod.rs deleted file mode 100644 index 01a40f5..0000000 --- a/vendor/windows-sys-0.45.0/src/core/mod.rs +++ /dev/null @@ -1,76 +0,0 @@ -mod literals; - -#[doc(hidden)] -pub use literals::*; - -pub type HRESULT = i32; -pub type HSTRING = *mut ::core::ffi::c_void; -pub type IUnknown = *mut ::core::ffi::c_void; -pub type IInspectable = *mut ::core::ffi::c_void; -pub type PSTR = *mut u8; -pub type PWSTR = *mut u16; -pub type PCSTR = *const u8; -pub type PCWSTR = *const u16; -pub type BSTR = *const u16; - -#[repr(C)] -pub struct GUID { - pub data1: u32, - pub data2: u16, - pub data3: u16, - pub data4: [u8; 8], -} - -impl ::core::marker::Copy for GUID {} - -impl ::core::clone::Clone for GUID { - fn clone(&self) -> Self { - *self - } -} - -impl GUID { - pub const fn from_u128(uuid: u128) -> Self { - Self { data1: (uuid >> 96) as u32, data2: (uuid >> 80 & 0xffff) as u16, data3: (uuid >> 64 & 0xffff) as u16, data4: (uuid as u64).to_be_bytes() } - } -} - -#[cfg(all(windows_raw_dylib, target_arch = "x86"))] -#[macro_export] -#[doc(hidden)] -macro_rules! link { - ($library:literal $abi:literal $(#[$($doc:tt)*])* fn $name:ident($($arg:ident: $argty:ty),*)->$ret:ty) => ( - #[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim", import_name_type = "undecorated")] - extern $abi { - pub fn $name($($arg: $argty),*) -> $ret; - } - ) -} - -#[cfg(all(windows_raw_dylib, not(target_arch = "x86")))] -#[macro_export] -#[doc(hidden)] -macro_rules! link { - ($library:literal $abi:literal $(#[$($doc:tt)*])* fn $name:ident($($arg:ident: $argty:ty),*)->$ret:ty) => ( - #[link(name = $library, kind = "raw-dylib", modifiers = "+verbatim")] - extern "system" { - pub fn $name($($arg: $argty),*) -> $ret; - } - ) -} - -#[cfg(not(windows_raw_dylib))] -#[macro_export] -#[doc(hidden)] -macro_rules! link { - ($library:literal $abi:literal $(#[$($doc:tt)*])* fn $name:ident($($arg:ident: $argty:ty),*)->$ret:ty) => ( - #[link(name = "windows")] - extern $abi { - $(#[$($doc)*])* - pub fn $name($($arg: $argty),*) -> $ret; - } - ) -} - -#[doc(hidden)] -pub use crate::link; |