use core::ptr;
use alloc::string::{String, ToString};
use uefi_macros::unsafe_protocol;
use uefi_raw::Char16;
use uefi_raw::protocol::hii::config::HiiConfigRoutingProtocol;
use crate::{CStr16, StatusExt};
#[derive(Debug)]
#[repr(transparent)]
#[unsafe_protocol(HiiConfigRoutingProtocol::GUID)]
pub struct HiiConfigRouting(HiiConfigRoutingProtocol);
impl HiiConfigRouting {
pub fn export(&self) -> uefi::Result<String> {
unsafe {
let mut results: *const Char16 = ptr::null();
(self.0.export_config)(&self.0, &mut results)
.to_result_with_val(|| CStr16::from_ptr(results.cast()).to_string())
}
}
}