diff options
| author | Flaise <[email protected]> | 2019-08-02 20:30:48 -0500 |
|---|---|---|
| committer | Matthew Collins <[email protected]> | 2019-08-03 09:08:03 +0100 |
| commit | f109df710c3715b1bf863c5b3f1ac1f8a53b39ed (patch) | |
| tree | 6927c655417ede7c48e168892bf3cae32512cc80 /src | |
| parent | Implemented Serialize, Deserialize and other common traits where appropriate (diff) | |
| download | steamworks-rs-f109df710c3715b1bf863c5b3f1ac1f8a53b39ed.tar.xz steamworks-rs-f109df710c3715b1bf863c5b3f1ac1f8a53b39ed.zip | |
Made serde dependency optional
Diffstat (limited to 'src')
| -rw-r--r-- | src/app.rs | 3 | ||||
| -rw-r--r-- | src/error.rs | 5 | ||||
| -rw-r--r-- | src/friends.rs | 13 | ||||
| -rw-r--r-- | src/lib.rs | 11 | ||||
| -rw-r--r-- | src/matchmaking.rs | 6 | ||||
| -rw-r--r-- | src/networking.rs | 6 | ||||
| -rw-r--r-- | src/remote_storage.rs | 3 | ||||
| -rw-r--r-- | src/ugc.rs | 3 | ||||
| -rw-r--r-- | src/user_stats.rs | 18 |
9 files changed, 46 insertions, 22 deletions
@@ -1,7 +1,8 @@ use super::*; /// An id for a steam app/game -#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct AppId(pub u32); /// Access to the steam apps interface diff --git a/src/error.rs b/src/error.rs index 10e187d..cea2ed9 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,11 +1,14 @@ +#[cfg(feature = "serde")] use serde::{Serialize, Deserialize}; + use crate::sys; /// Covers errors that can be returned by the steamworks API /// /// Documentation is based on official documentation which doesn't /// always explain when an error could be returned or its meaning. -#[derive(Debug, Fail, Serialize, Deserialize, PartialEq, Eq)] +#[derive(Debug, Fail, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum SteamError { /// Returned if the steamworks API fails to initialize. #[fail(display = "failed to init the steamworks API")] diff --git a/src/friends.rs b/src/friends.rs index 770b542..b7a12f0 100644 --- a/src/friends.rs +++ b/src/friends.rs @@ -5,7 +5,7 @@ use std::net::Ipv4Addr; const CALLBACK_BASE_ID: i32 = 300; bitflags! { - #[derive(Serialize, Deserialize)] + #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[repr(C)] pub struct FriendFlags: u16 { const NONE = 0x0000; @@ -27,7 +27,7 @@ bitflags! { } bitflags! { - #[derive(Serialize, Deserialize)] + #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[repr(C)] pub struct PersonaChange: i32 { const NAME = 0x0001; @@ -115,7 +115,8 @@ impl <Manager> Friends<Manager> { } /// Information about a friend's current state in a game -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct FriendGame { /// The id of the game that the friend is /// playing @@ -130,7 +131,8 @@ pub struct FriendGame { pub lobby: LobbyId, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct PersonaStateChange { pub steam_id: SteamId, pub flags: PersonaChange, @@ -149,7 +151,8 @@ unsafe impl Callback for PersonaStateChange { } } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct GameLobbyJoinRequested { pub lobby_steam_id: LobbyId, pub friend_steam_id: SteamId, @@ -41,6 +41,8 @@ use std::fmt::{ }; use std::marker::PhantomData; use std::collections::HashMap; + +#[cfg(feature = "serde")] use serde::{Serialize, Deserialize}; pub type SResult<T> = Result<T, SteamError>; @@ -334,7 +336,8 @@ impl Drop for ClientManager { } /// A user's steam id -#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct SteamId(pub(crate) u64); impl SteamId { @@ -370,13 +373,15 @@ impl SteamId { } /// A user's account id -#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct AccountId(pub(crate) u32); /// A game id /// /// Combines `AppId` and other information -#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct GameId(pub(crate) u64); impl GameId { diff --git a/src/matchmaking.rs b/src/matchmaking.rs index 22486d1..8b9f2f7 100644 --- a/src/matchmaking.rs +++ b/src/matchmaking.rs @@ -11,7 +11,8 @@ pub struct Matchmaking<Manager> { const CALLBACK_BASE_ID: i32 = 500; /// The visibility of a lobby -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum LobbyType { Private, FriendsOnly, @@ -19,7 +20,8 @@ pub enum LobbyType { Invisible, } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct LobbyId(pub(crate) u64); impl LobbyId { diff --git a/src/networking.rs b/src/networking.rs index 995bea7..696874b 100644 --- a/src/networking.rs +++ b/src/networking.rs @@ -7,7 +7,8 @@ pub struct Networking<Manager> { } /// The method used to send a packet -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum SendType { /// Send the packet directly over udp. /// @@ -89,7 +90,8 @@ impl <Manager> Networking<Manager> { } /// Called when a user wants to communicate via p2p -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct P2PSessionRequest { /// The steam ID of the user requesting a p2p /// session diff --git a/src/remote_storage.rs b/src/remote_storage.rs index eddf3b8..0772ca8 100644 --- a/src/remote_storage.rs +++ b/src/remote_storage.rs @@ -250,7 +250,8 @@ impl <Manager> std::io::Seek for SteamFileReader<Manager> { } /// Name and size information about a file in the steam cloud -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct SteamFileInfo { /// The file name pub name: String, @@ -20,7 +20,8 @@ const CALLBACK_REMOTE_STORAGE_BASE_ID: i32 = 1300; const UGCQueryHandleInvalid: u64 = 0xffffffffffffffff; /// Worshop item ID -#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Hash, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct PublishedFileId(pub u64); /// Workshop item types to search for diff --git a/src/user_stats.rs b/src/user_stats.rs index 273e8d4..941deff 100644 --- a/src/user_stats.rs +++ b/src/user_stats.rs @@ -177,7 +177,8 @@ impl <Manager> UserStats<Manager> { } } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct LeaderboardEntry { pub user: SteamId, pub global_rank: i32, @@ -191,7 +192,8 @@ pub enum LeaderboardDataRequest { Friends, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct LeaderboardScoreUploaded { pub score: i32, pub was_changed: bool, @@ -199,26 +201,30 @@ pub struct LeaderboardScoreUploaded { pub global_rank_previous: i32, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum UploadScoreMethod { KeepBest, ForceUpdate, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum LeaderboardSortMethod { Ascending, Descending, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum LeaderboardDisplayType { Numeric, TimeSeconds, TimeMilliSeconds, } -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct Leaderboard(u64); #[test] |