diff options
Diffstat (limited to 'src/sdmc.rs')
| -rw-r--r-- | src/sdmc.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/sdmc.rs b/src/sdmc.rs new file mode 100644 index 0000000..e023010 --- /dev/null +++ b/src/sdmc.rs @@ -0,0 +1,28 @@ +use core::marker::PhantomData; + +use ::raw::sdmc::*; + +pub struct Sdmc { + pd: PhantomData<i32> +} + +impl Sdmc { + pub fn new() -> Result<Self, i32> { + unsafe { + let r = sdmcInit(); + if r < 0 { + Err(r) + } else { + Ok(Sdmc { pd: PhantomData }) + } + } + } +} + +impl Drop for Sdmc { + fn drop(&mut self) { + unsafe { + sdmcExit() + }; + } +} |