windows-helpers 0.4.3

Helpers for the windows crate
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#![cfg(feature = "f_Win32_System_Power")]

use crate::{foundation::BoolExt, windows};
use std::{mem, ptr};
use windows::Win32::{Foundation::BOOL, System::Power::POWERBROADCAST_SETTING};

pub trait PowerBroadcastSettingExt {
    unsafe fn cast_data<T>(&self) -> windows::core::Result<&T>;
}

impl PowerBroadcastSettingExt for POWERBROADCAST_SETTING {
    unsafe fn cast_data<T>(&self) -> windows::core::Result<&T> {
        BOOL::from(self.DataLength == mem::size_of::<T>() as u32).ok_or_e_fail()?;
        Ok(&*ptr::addr_of!(self.Data).cast::<T>())
    }
}