Open skeet70 opened 2 years ago
I believe the intended distinction is that None
comes back from admin_list
, member_list
, and owner
if you aren't a member/admin of the group. But this should definitely be documented better.
Currently, the group permissions include is_admin
and is_member
- if both are false, you can't get any information about the group admins and members. So this information is somewhat redundant with the none
Option for the admin / member lists.
Getting rid of the Option around the vecs gets rid of an extra layer of unwrapping in the consumer, which seems good. We would put this in a v2 ironoxide API feature branch. Not needed any time soon - we can accumulate things in the feature branch until we have enough to release.
@coltfred brought up that we could return an enum type of the GroupMeta
and GroupFull
types with an impl that lets you use the things that will always be there, and you could match if you need to use something that might not be there (owner
or needs_rotation
).
Seems like
Option<Vec<UserId>>
is justVec<UserId>
with extra steps. Is there information communicated byNone
that isn't communicated by[ ]
? If so, we should document that. If not, we should improve the interface so you don't have to check for bothNone
and.len() > 0
when using it.