Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

full rewrite for async/await #66

Merged
merged 60 commits into from
Jan 11, 2020
Merged

full rewrite for async/await #66

merged 60 commits into from
Jan 11, 2020

Conversation

museun
Copy link
Owner

@museun museun commented Jan 8, 2020

This is the next version.

This is fully async/await and provides a feature to disable it.

When "async" isn't enabled, only messages encoding/decode/parsing and some helper utilities are available.

  • InvalidMessage error implementation.
  • Add a wait_for method
    • Connect should block until the CAPs are verified
    • Connect should block until 001 or 376 is received
      • on 001, return their username
      • on 376, return the twitch user
  • More message / events types
    • 001 - irc ready
    • 376 - twitch ready
    • Error - an irc error
    • Notice - a lot of Twitch data is sent via noticed
    • ClearChat
    • ClearMsg
    • GlobalUserState
    • HostTargetEnd
    • HostTargetStart
    • Mode
    • ModeStatus
    • NamesEnd
    • NamesStart
    • MessageId
    • Reconnect
    • FollowersOnly
    • RoomState
    • NoticeType
    • SubPlan
    • UserNotice
    • UserState
  • Channel type wrapper
  • User type
    • Tags::get_user -> Option
  • Optional serde integration
    • Determine what types should have derives
    • Feature-gate the derives
  • Event ids for specific removal
  • More methods on writer
    • ban :: username reason
    • clear
    • color :: color
    • command :: data
    • commercial :: length
    • delete
    • disconnect
    • emoteonly
    • emoteonlyoff
    • followers :: duration
    • followersoff
    • help
    • host :: channel
    • marker :: comment
    • me :: channel message
    • mod :: username
    • give_mod :: username
    • mods
    • op :: username
    • r9kbeta
    • r9kbetaoff
    • raid :: channel
    • raw :: data
    • send :: channel message # alias for privmsg
    • slow :: duration
    • slowoff
    • subscribers
    • subscribersoff
    • timeout :: username duration reason
    • unban :: username
    • unhost
    • unmod :: username
    • unraid
    • untimeout :: username
    • unvip :: username
    • vip :: username
    • vips
    • whisper :: username message
  • More unit tests
  • Note the MSRV (Minimal supported rust version)
    • Decide on a version, currently 1.40 is required for #[non_exhaustive]
  • Fix github actions to use MSRV
    • Run rustfmt
    • Run clippy
  • Add tokio codecs
    • Encoder
    • Decoder
  • More logging
  • Documentation
    • Ensure 'features' show up in the docs.
    • Many of the doc links are broken
    • Ensure the event -> message mapping table is up to date
      • Move this table out to a more prominent place
  • Examples

@museun museun self-assigned this Jan 8, 2020
@museun museun marked this pull request as ready for review January 11, 2020 19:14
@museun museun merged commit 43f658f into master Jan 11, 2020
@museun museun deleted the async branch February 4, 2020 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant