steam-vent 0.5.0

Interact with the Steam network via rust
Documentation
use num_enum::TryFromPrimitive;
use std::convert::TryFrom;

#[derive(TryFromPrimitive, Debug, Copy, Clone)]
#[repr(i32)]
#[non_exhaustive]
pub enum EResult {
    Invalid = 0,
    OK = 1,
    Fail = 2,
    NoConnection = 3,
    InvalidPassword = 5,
    LoggedInElsewhere = 6,
    InvalidProtocolVer = 7,
    InvalidParam = 8,
    FileNotFound = 9,
    Busy = 10,
    InvalidState = 11,
    InvalidName = 12,
    InvalidEmail = 13,
    DuplicateName = 14,
    AccessDenied = 15,
    Timeout = 16,
    Banned = 17,
    AccountNotFound = 18,
    InvalidSteamID = 19,
    ServiceUnavailable = 20,
    NotLoggedOn = 21,
    Pending = 22,
    EncryptionFailure = 23,
    InsufficientPrivilege = 24,
    LimitExceeded = 25,
    Revoked = 26,
    Expired = 27,
    AlreadyRedeemed = 28,
    DuplicateRequest = 29,
    AlreadyOwned = 30,
    IPNotFound = 31,
    PersistFailed = 32,
    LockingFailed = 33,
    LogonSessionReplaced = 34,
    ConnectFailed = 35,
    HandshakeFailed = 36,
    IOFailure = 37,
    RemoteDisconnect = 38,
    ShoppingCartNotFound = 39,
    Blocked = 40,
    Ignored = 41,
    NoMatch = 42,
    AccountDisabled = 43,
    ServiceReadOnly = 44,
    AccountNotFeatured = 45,
    AdministratorOK = 46,
    ContentVersion = 47,
    TryAnotherCM = 48,
    PasswordRequiredToKickSession = 49,
    AlreadyLoggedInElsewhere = 50,
    Suspended = 51,
    Cancelled = 52,
    DataCorruption = 53,
    DiskFull = 54,
    RemoteCallFailed = 55,
    // PasswordNotSet = 56, // removed renamed to PasswordUnset
    PasswordUnset = 56,
    ExternalAccountUnlinked = 57,
    PSNTicketInvalid = 58,
    ExternalAccountAlreadyLinked = 59,
    RemoteFileConflict = 60,
    IllegalPassword = 61,
    SameAsPreviousValue = 62,
    AccountLogonDenied = 63,
    CannotUseOldPassword = 64,
    InvalidLoginAuthCode = 65,
    // AccountLogonDeniedNoMailSent = 66, // removed renamed to AccountLogonDeniedNoMail
    AccountLogonDeniedNoMail = 66,
    HardwareNotCapableOfIPT = 67,
    IPTInitError = 68,
    ParentalControlRestricted = 69,
    FacebookQueryError = 70,
    ExpiredLoginAuthCode = 71,
    IPLoginRestrictionFailed = 72,
    // AccountLocked = 73, // removed renamed to AccountLockedDown
    AccountLockedDown = 73,
    AccountLogonDeniedVerifiedEmailRequired = 74,
    NoMatchingURL = 75,
    BadResponse = 76,
    RequirePasswordReEntry = 77,
    ValueOutOfRange = 78,
    UnexpectedError = 79,
    Disabled = 80,
    InvalidCEGSubmission = 81,
    RestrictedDevice = 82,
    RegionLocked = 83,
    RateLimitExceeded = 84,
    // AccountLogonDeniedNeedTwoFactorCode = 85, // removed renamed to AccountLoginDeniedNeedTwoFactor
    AccountLoginDeniedNeedTwoFactor = 85,
    // ItemOrEntryHasBeenDeleted = 86, // removed renamed to ItemDeleted
    ItemDeleted = 86,
    AccountLoginDeniedThrottle = 87,
    TwoFactorCodeMismatch = 88,
    TwoFactorActivationCodeMismatch = 89,
    // AccountAssociatedToMultiplePlayers = 90, // removed renamed to AccountAssociatedToMultiplePartners
    AccountAssociatedToMultiplePartners = 90,
    NotModified = 91,
    // NoMobileDeviceAvailable = 92, // removed renamed to NoMobileDevice
    NoMobileDevice = 92,
    // TimeIsOutOfSync = 93, // removed renamed to TimeNotSynced
    TimeNotSynced = 93,
    SMSCodeFailed = 94,
    // TooManyAccountsAccessThisResource = 95, // removed renamed to AccountLimitExceeded
    AccountLimitExceeded = 95,
    AccountActivityLimitExceeded = 96,
    PhoneActivityLimitExceeded = 97,
    RefundToWallet = 98,
    EmailSendFailure = 99,
    NotSettled = 100,
    NeedCaptcha = 101,
    GSLTDenied = 102,
    GSOwnerDenied = 103,
    InvalidItemType = 104,
    IPBanned = 105,
    GSLTExpired = 106,
    InsufficientFunds = 107,
    TooManyPending = 108,
    NoSiteLicensesFound = 109,
    WGNetworkSendExceeded = 110,
    AccountNotFriends = 111,
    LimitedUserAccount = 112,
    CantRemoveItem = 113,
    AccountHasBeenDeleted = 114,
    AccountHasAnExistingUserCancelledLicense = 115,
    DeniedDueToCommunityCooldown = 116,
    NoLauncherSpecified = 117,
    MustAgreeToSSA = 118,
    ClientNoLongerSupported = 119,
}

impl EResult {
    pub fn from_result(result: i32) -> Result<(), EResult> {
        let result = EResult::try_from(result).unwrap_or(EResult::Invalid);
        match result {
            EResult::OK => Ok(()),
            err => Err(err),
        }
    }
}