teloxide/CHANGELOG.md
2020-10-21 19:45:03 +03:00

3.2 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[unreleased]

Added

  • throttle, cache_me, auto_send and full crate features
  • payloads module
  • RequesterExt trait which is implemented for all Requesters and allows easily wrapping them in adaptors
  • adaptors module
    • Request throttling - opt-in feature represented by Throttle bot adapter which allows automatically checking telegram limits (#10)
    • Request auto sending - ability to .await requests without need to call .send() (opt-in feature represented by AutoSend bot adapter, #8)
    • get_me caching (opt-in feature represented by CacheMe bot adapter)
  • Requester trait which represents bot-clients (#7)
  • {Json,Multipart}Request the Bot requests types (#6)
  • Output<T> alias to <<T as HasPayload>::Payload as Payload>::Output
  • Payload, HasPayload and Request traits which represent different parts of the request (#5)
  • GetUpdatesNonStrict - fail proof version of GetUpdates
  • Move core code here from the teloxide main repo, for older changes see it's CHANGELOG.md.
    • Following modules were moved:
      • bot
      • requests [except requests::respond function]
      • types
      • errors
      • net [private]
    • client_from_env was moved from teloxide::utils to crate root of teloxide-core
    • To simplify GetUpdates request it was changed to simply return Vec<Update> (instead of Vec<Result<Update, (Value, serde_json::Error)>>)
  • GetUpdatesNonStrict 'telegram' method, that behaves just like GetUpdates but doesn't fail if one of updates fails to be deserialized

Changed

  • Merge ApiErrorKind and KnownApiErrorKind into ApiError (#13)
  • Refactor ChatMember (#9)
    • Replace a bunch of Option<_> fields with ChatMemberKind
    • Remove setters (users are not expected to create this struct)
    • Add getters
  • Changed internal mechanism of sending multipart requests
  • Added RequestError::Io(io::Error) to wrap I/O error those can happen while sending files to telegram
  • Change StickerType: instead of newtypes (Png(InputFile)) use structs (Png { png_sticker: InputFile }), add StickerType::{png,tgs} constructors
  • Make all fields of all methods pub

Removed

  • unstable-stream feature (now Bot::download_file_stream is accesable by default)
  • old Request trait
  • RequestWithFile, now multipart requests use Request
  • Remove all #[non_exhaustive] annotations