diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 15 | ||||
| -rw-r--r-- | src/user.rs | 17 |
2 files changed, 32 insertions, 0 deletions
@@ -18,6 +18,8 @@ mod friends; pub use friends::*; mod matchmaking; pub use matchmaking::*; +mod user; +pub use user::*; use std::sync::{Arc, Mutex, Weak}; use std::ffi::{CString, CStr}; @@ -242,6 +244,19 @@ impl Client { } } + + /// Returns an accessor to the steam user interface + pub fn user(&self) -> User { + unsafe { + let user = sys::steam_rust_get_user(); + debug_assert!(!user.is_null()); + User { + user, + _client: self.inner.clone(), + } + } + + } } impl Drop for ClientInner { diff --git a/src/user.rs b/src/user.rs new file mode 100644 index 0000000..fcd3e40 --- /dev/null +++ b/src/user.rs @@ -0,0 +1,17 @@ + +use super::*; + +/// Access to the steam user interface +pub struct User { + pub(crate) user: *mut sys::ISteamUser, + pub(crate) _client: Arc<ClientInner>, +} + +impl User { + /// Returns the steam id of the current user + pub fn steam_id(&self) -> SteamId { + unsafe { + SteamId(sys::SteamAPI_ISteamUser_GetSteamID(self.user)) + } + } +}
\ No newline at end of file |