2024.01.31 - Latest Borrow Compile Err

This commit is contained in:
ModulatingForce 2024-01-31 09:31:14 -05:00
commit be2e967e40
2 changed files with 26 additions and 11 deletions
src/core

View file

@ -101,9 +101,11 @@ pub enum Permissible {
Block
}
#[derive(Clone)]
//#[derive(Clone)]
pub struct IdentityManager {
special_roles_users : HashMap<String,Vec<UserRole>>, // # <-- (!) This must be String instead of ChType because we're checking a User not a Channel
// parent_mgr : Box<crate::core::botinstance::BotManagers>,
parent_mgr : Option<Box<crate::core::botinstance::BotManagers>>,
}
pub enum ChatBadge {
@ -122,13 +124,14 @@ impl IdentityManager {
IdentityManager {
special_roles_users : a,
parent_mgr : None,
}
}
// [ ] Maybe I should create a can_user_run version that simply takes PrvMsg, but then calls can_user_run directly
// pub fn can_user_run_PRVMSG(self,msg:&PrivmsgMessage,cmdreqroles:Vec<UserRole>) -> Result<Permissible,Box<dyn Error>>
pub fn can_user_run_PRVMSG(self,msg:&PrivmsgMessage,cmdreqroles:Vec<UserRole>) -> Permissible
pub fn can_user_run_PRVMSG(self,msg:&PrivmsgMessage,cmdreqroles:Vec<UserRole>) -> &Permissible
{
// println!("(#{}) {}: {}", msg.channel_login, msg.sender.name, msg.message_text);
@ -149,7 +152,7 @@ impl IdentityManager {
// }
if let Some(sender_badge) = sender_badge {
return self.can_user_run(msg.sender.name.to_owned(),
return &self.can_user_run(msg.sender.name.to_owned(),
ChType::Channel(msg.channel_login.to_owned()),
sender_badge,
cmdreqroles
@ -159,7 +162,7 @@ impl IdentityManager {
// [ ] Call can_user_run()
Permissible::Block
&Permissible::Block
}
pub fn can_user_run(mut self,
@ -241,7 +244,8 @@ impl IdentityManager {
// println!("debug usr : {}",&usr.to_lowercase());
// let Some((k,v)) = self.special_roles_users.get_key_value(usr);
match self.special_roles_users.get_mut(&usr.to_lowercase()) {
// match self.special_roles_users.get_mut(&usr.to_lowercase()) {
match self.special_roles_users.get(&usr.to_lowercase()) {
Some(usrroles) => {
// println!("contains mod : {}", usrroles.contains(&UserRole::Mod(channelname.clone())));
// println!("contains supmod : {}", usrroles.contains(&UserRole::SupMod(channelname.clone())));
@ -250,7 +254,13 @@ impl IdentityManager {
// Do nothing - this is expected
} else {
// in this case, they have a ChatBadge::Mod but should have this for the channel
usrroles.push(UserRole::Mod(channelname.clone()));
// let mut a = usrroles;
// usrroles.push(UserRole::Mod(channelname.clone()));
// a.push(UserRole::Mod(channelname.clone()));
self.special_roles_users
.get_mut(&usr.to_lowercase())
.expect("ERROR")
.push(UserRole::Mod(channelname.clone()));
// println!("debug special roles : {:?}",self.special_roles_users);
}
},