use crateErrorKind;
use D3D_SHADER_MACRO;
use *;
/// \[[docs.microsoft.com](https://docs.microsoft.com/en-us/windows/win32/api/d3dcommon/ns-d3dcommon-d3d_shader_macro)\]
/// D3D_SHADER_MACRO\[\] compatible types
///
/// ### ⚠️ Safety ⚠️
/// By implementing this trait, you promise that any returned [D3D_SHADER_MACRO] pointers are either [null], or:
/// * Points to a valid array of [D3D_SHADER_MACRO]s.
/// * The array is terminated by a "null" (zeroed/default) [D3D_SHADER_MACRO].
/// * All array elements before the terminal [D3D_SHADER_MACRO] have valid `\0` terminated `Name` and `Definition` pointers.
/// * Said array lives for at least as long as `self` remains untouched / undropped.
///
/// [D3D_SHADER_MACRO]: https://docs.microsoft.com/en-us/windows/win32/api/d3dcommon/ns-d3dcommon-d3d_shader_macro
pub unsafe
unsafe
unsafe