Skip to content

Latest commit

 

History

History
16 lines (15 loc) · 1.19 KB

MIGRATE-0.10.md

File metadata and controls

16 lines (15 loc) · 1.19 KB

There are many API changes from 0.9 to 0.10 and most probably you'll need to migrate your code. This is the summary of breaking changes:

  • the crate uses edition = "2018" thus requiring rust-1.31
  • Connection consumes Context on creation and releases it on connect_*(), allows to avoid using Arc and provides more safety
  • type signatures for Connection, Context have an additional lifetime arg
  • Connection::context() is removed, context is now passed as the first argument to a callback
  • Connection and Logger own the callbacks supplied to them, passing closure references is still possible, all callbacks must be Send
  • Connection::*handler_add() return special handles used to remove callbacks later
  • Connection::*handler_delete() take special handles returned from Connection::*handler_add() and not callback references
  • Context implements memory allocation through Rust allocator
  • Context::set_timeout() takes &mut self instead of &self
  • the crate uses failure instead of error-chain
  • StreamError no longer implements std::error::Error
  • Stanza::context() is no longer accessible publicly
  • Stanza::get_first_child_mut() takes &mut self instead of &self