museun / twitchchat

interface to the irc portion of Twitch's chat
Apache License 2.0
103 stars 23 forks source link

user_id type is different in Identity compared with user_id and room_id of messages #234

Open liquidnya opened 3 years ago

liquidnya commented 3 years ago

The user_id in Identity::Full has the type i64, but other room_id and user_id functions of messages e.g. Privmsg::user_id uses u64 as the user id type.

When comparing the user_id or room_id with the bot identity user_id I have to convert between the types and handle the error cases:

If there are no negative user ids I suggest changing the type of user_id in Identity::Full to u64.

museun commented 3 years ago

Twitch does not specify the numeric bounds for those types. Being that most of their system speaks JSON, ideally those should be i64 (which matches the integer type most JSON implementations use (including serde_json)).

Its a mistake on my end to have u64s there. I intentionally used i64 but there has been some oversight. There isn't really any schema or spec to follow, so I'm just going off the cuff and hoping things stay relatively the same. I highly doubt Twitch would ever send a negative id, but my types->json would require a conversion, likely.

I agree they should all be the same type. I would prefer they be u64s but there is a sound reason for them to be i64s.