Skip to content

Releases: MaxOhn/rosu

v0.6.0

08 Jul 15:58
Compare
Choose a tag to compare
  • Breaking

    • Renamed the GameMode variants to Osu, Taiko, Catch, and Mania
    • Replaced the chrono dependency with time. All fields of type chrono::DateTime<chrono::offset::Utc> are now of type time::OffsetDateTime
    • Removed the cache feature and all types & methods that came with it.
    • Renamed the struct APIError to ApiError
    • The given api key must now implement Into<Box<str>> instead of Into<String>
    • OsuBuilder no longer implements Default
  • Dependencies

v0.5.0

19 Jan 11:10
Compare
Choose a tag to compare

Updated all dependencies.
This includes the bump to tokio 1.0

v0.4.0

27 Nov 12:47
Compare
Choose a tag to compare

Complete rewrite of the backend and interface of the osu client.

Client interface:
The client now has methods to request data specifically.
(UserIdentification implements From for u32, String, &str, and &String)

  • .user(user: impl Into<UserIdentification>) to get an Option<User>
  • .beatmap() to get an Option<Beatmap>
  • .beatmaps() to get a Vec<Beatmap>
  • .osu_match(match_id: u32) to get a Match
  • .score(map_id: u32) to get an Option<Score>
  • .scores(map_id: u32) to get a Vec<Score>
  • .top_scores(user: impl Into<UserIdentification>) to get a Vec<Score>
  • .recent_scores(user: impl Into<UserIdentification>) to get a Vec<Score>

Data types:

  • Added an OsuBuilder struct
  • OsuError is now more idiomatically implement through its source errors. Reading an OsuError should now be done by unwinding its .source(). (See README)
  • Beatmap's field file_md5 is now an Option<String>
  • Grade now implements FromStr instead of TryFrom<&str>
  • GameMods now implements FromStr instead of TryFrom<&str>
  • GameMode's implementation of Display now results in osu, taiko, fruits, and mania.

General changes

  • models module renamed to model

Dependencies:

  • Remove governor, use custom ratelimiter instead
  • Add tokio for the custom ratelimiter

v0.3.3

28 Oct 23:55
Compare
Choose a tag to compare
  • Added OsuError::InvalidMultiplayerMatch if either the match id was invalid or the match was private
  • Fixed Event deserializing for events where map_id is None
  • removed serde_derive as a direct dependency

v0.3.2

26 Aug 09:07
Compare
Choose a tag to compare
  • Requests containing parameters with whitespace fixed
  • Parse API errors more nicely
  • Expect the unexpected negative values for u32 & u64 deserializing
  • Score::score_id is now u64
  • Added Cached metric if features metrics and cache are enabled

v0.3.0

18 Aug 21:35
Compare
Choose a tag to compare
  • Internals of requests now use a reqwest::Url directly instead of a HashMap
  • Creating a request from a username now returns an OsuResult of the request, failing if no request could be built for the given name.
  • cache feature flag to enable struct caching through a redis connection pool

v0.2.4

07 Aug 13:47
Compare
Choose a tag to compare
  • Fixed deserializing of null to u32 or u64 by taking 0 as default
  • Deserialize-errors now include the response text

v0.2.3

05 Aug 20:43
Compare
Choose a tag to compare
  • serialize feature flag to enhance deserializing and enable serializing of model structs
  • metrics feature flag to count requests and provide Osu::metrics method
  • Fixed missing mode specification when retrieving the leaderboard of a beatmap
  • Simplified String/&str provision as parameters (Into<String> and AsRef<str>)

v0.2.2

16 Jun 19:09
Compare
Choose a tag to compare
  • Added newly introduced languages and genres for beatmaps
  • Removed some internal panics by falling back to default values