diff options
| author | Matthew Collins <[email protected]> | 2018-05-05 15:46:12 +0100 |
|---|---|---|
| committer | Matthew Collins <[email protected]> | 2018-05-05 15:46:12 +0100 |
| commit | 5ef3f6e17cd14d452cfcdbb8a30abf61e513e84d (patch) | |
| tree | e667ed1dccc3d3ac0df83e8c66b76dd5dc0771e8 /src/user.rs | |
| parent | Minor bump due to slight mistake with last publish (diff) | |
| download | steamworks-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.rs | 50 |
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!(), } } } |