aboutsummaryrefslogtreecommitdiff
path: root/src/user.rs
diff options
context:
space:
mode:
authorMatthew Collins <[email protected]>2018-05-05 15:46:12 +0100
committerMatthew Collins <[email protected]>2018-05-05 15:46:12 +0100
commit5ef3f6e17cd14d452cfcdbb8a30abf61e513e84d (patch)
treee667ed1dccc3d3ac0df83e8c66b76dd5dc0771e8 /src/user.rs
parentMinor bump due to slight mistake with last publish (diff)
downloadsteamworks-rs-5ef3f6e17cd14d452cfcdbb8a30abf61e513e84d.tar.xz
steamworks-rs-5ef3f6e17cd14d452cfcdbb8a30abf61e513e84d.zip
Rework how the sys crate is generated
Due to packing issues with steam's structs we use wrapper methods to access the fields and create the structs.
Diffstat (limited to 'src/user.rs')
-rw-r--r--src/user.rs50
1 files changed, 26 insertions, 24 deletions
diff --git a/src/user.rs b/src/user.rs
index ec2c768..b21ac5f 100644
--- a/src/user.rs
+++ b/src/user.rs
@@ -63,12 +63,13 @@ impl <Manager> User<Manager> {
user.0
);
Err(match res {
- sys::BeginAuthSessionResult::Ok => return Ok(()),
- sys::BeginAuthSessionResult::InvalidTicket => AuthSessionError::InvalidTicket,
- sys::BeginAuthSessionResult::DuplicateRequest => AuthSessionError::DuplicateRequest,
- sys::BeginAuthSessionResult::InvalidVersion => AuthSessionError::InvalidVersion,
- sys::BeginAuthSessionResult::GameMismatch => AuthSessionError::GameMismatch,
- sys::BeginAuthSessionResult::ExpiredTicket => AuthSessionError::ExpiredTicket,
+ sys::EBeginAuthSessionResult_k_EBeginAuthSessionResultOK => return Ok(()),
+ sys::EBeginAuthSessionResult_k_EBeginAuthSessionResultInvalidTicket => AuthSessionError::InvalidTicket,
+ sys::EBeginAuthSessionResult_k_EBeginAuthSessionResultDuplicateRequest => AuthSessionError::DuplicateRequest,
+ sys::EBeginAuthSessionResult_k_EBeginAuthSessionResultInvalidVersion => AuthSessionError::InvalidVersion,
+ sys::EBeginAuthSessionResult_k_EBeginAuthSessionResultGameMismatch => AuthSessionError::GameMismatch,
+ sys::EBeginAuthSessionResult_k_EBeginAuthSessionResultExpiredTicket => AuthSessionError::ExpiredTicket,
+ _ => unreachable!(),
})
}
}
@@ -154,15 +155,15 @@ pub struct AuthSessionTicketResponse {
unsafe impl Callback for AuthSessionTicketResponse {
const ID: i32 = 163;
const SIZE: i32 = ::std::mem::size_of::<sys::GetAuthSessionTicketResponse_t>() as i32;
-
+
unsafe fn from_raw(raw: *mut libc::c_void) -> Self {
let val = &mut *(raw as *mut sys::GetAuthSessionTicketResponse_t);
AuthSessionTicketResponse {
- ticket: AuthTicket(val.auth_ticket),
- result: if val.result == sys::SResult::Ok {
+ ticket: AuthTicket(val.get_m_hAuthTicket()),
+ result: if val.get_m_eResult() == sys::EResult_k_EResultOK {
Ok(())
} else {
- Err(val.result.into())
+ Err(val.get_m_eResult().into())
}
}
}
@@ -185,23 +186,24 @@ pub struct ValidateAuthTicketResponse {
unsafe impl Callback for ValidateAuthTicketResponse {
const ID: i32 = 143;
const SIZE: i32 = ::std::mem::size_of::<sys::ValidateAuthTicketResponse_t>() as i32;
-
+
unsafe fn from_raw(raw: *mut libc::c_void) -> Self {
let val = &mut *(raw as *mut sys::ValidateAuthTicketResponse_t);
ValidateAuthTicketResponse {
- steam_id: SteamId(val.steam_id),
- owner_steam_id: SteamId(val.owner_steam_id),
- response: match val.response {
- sys::AuthSessionResponse::Ok => Ok(()),
- sys::AuthSessionResponse::UserNotConnectedToSteam => Err(AuthSessionValidateError::UserNotConnectedToSteam),
- sys::AuthSessionResponse::NoLicenseOrExpired => Err(AuthSessionValidateError::NoLicenseOrExpired),
- sys::AuthSessionResponse::VACBanned => Err(AuthSessionValidateError::VACBanned),
- sys::AuthSessionResponse::LoggedInElseWhere => Err(AuthSessionValidateError::LoggedInElseWhere),
- sys::AuthSessionResponse::VACCheckTimedOut => Err(AuthSessionValidateError::VACCheckTimedOut),
- sys::AuthSessionResponse::AuthTicketCancelled => Err(AuthSessionValidateError::AuthTicketCancelled),
- sys::AuthSessionResponse::AuthTicketInvalidAlreadyUsed => Err(AuthSessionValidateError::AuthTicketInvalidAlreadyUsed),
- sys::AuthSessionResponse::AuthTicketInvalid => Err(AuthSessionValidateError::AuthTicketInvalid),
- sys::AuthSessionResponse::PublisherIssuedBan => Err(AuthSessionValidateError::PublisherIssuedBan),
+ steam_id: SteamId(val.get_m_SteamID()),
+ owner_steam_id: SteamId(val.get_m_OwnerSteamID()),
+ response: match val.get_m_eAuthSessionResponse() {
+ sys::EAuthSessionResponse_k_EAuthSessionResponseOK => Ok(()),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseUserNotConnectedToSteam => Err(AuthSessionValidateError::UserNotConnectedToSteam),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseNoLicenseOrExpired => Err(AuthSessionValidateError::NoLicenseOrExpired),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseVACBanned => Err(AuthSessionValidateError::VACBanned),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseLoggedInElseWhere => Err(AuthSessionValidateError::LoggedInElseWhere),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseVACCheckTimedOut => Err(AuthSessionValidateError::VACCheckTimedOut),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseAuthTicketCanceled => Err(AuthSessionValidateError::AuthTicketCancelled),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed => Err(AuthSessionValidateError::AuthTicketInvalidAlreadyUsed),
+ sys::EAuthSessionResponse_k_EAuthSessionResponseAuthTicketInvalid => Err(AuthSessionValidateError::AuthTicketInvalid),
+ sys::EAuthSessionResponse_k_EAuthSessionResponsePublisherIssuedBan => Err(AuthSessionValidateError::PublisherIssuedBan),
+ _ => unreachable!(),
}
}
}