Browse Source

Implement "Srv" struct.

pull/10/head
Ronald Kinard 9 years ago
parent
commit
f822099d40
  1. 3
      src/lib.rs
  2. 4
      src/raw/srv.rs
  3. 29
      src/srv.rs

3
src/lib.rs

@ -13,6 +13,9 @@ pub mod srv; @@ -13,6 +13,9 @@ pub mod srv;
pub mod gfx;
pub mod services;
pub use srv::Srv;
pub use gfx::Gfx;
#[lang = "stack_exhausted"] extern fn stack_exhausted() {}
#[lang = "eh_personality"] extern fn eh_personality() {}
#[lang = "panic_fmt"] fn panic_fmt() -> ! { loop {} }

4
src/raw/srv.rs

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
use super::*;
use super::super::{Result, Handle};
use ::raw::*;
use ::{Result, Handle};
extern "C" {
pub fn srvInit() -> Result;

29
src/srv.rs

@ -1,13 +1,26 @@ @@ -1,13 +1,26 @@
use ::Result;
use ::raw::srv;
use ::raw::srv::*;
pub fn init() -> Result {
unsafe {
return srv::srvInit();
use core::marker::PhantomData;
pub struct Srv {
pd: PhantomData<i32>
}
impl Srv {
pub fn new() -> Result<Srv, i32> {
unsafe {
let r = srvInit();
if r < 0 {
Err(r)
} else {
Ok(Srv { pd: PhantomData })
}
}
}
}
pub fn exit() -> Result {
unsafe {
return srv::srvExit();
impl Drop for Srv {
fn drop(&mut self) {
unsafe { srvExit() };
}
}

Loading…
Cancel
Save