@@ -63,7 +63,7 @@ pub struct XpdListenerInner {
6363 #[ allow( unused) ]
6464 task_tracker : TaskTracker ,
6565 configs : DashMap < Id < GuildMarker > , Arc < GuildConfig > > ,
66- rewards : DashMap < Id < GuildMarker > , Arc < Vec < RoleReward > > > ,
66+ rewards : DashMap < Id < GuildMarker > , Arc < [ RoleReward ] > > ,
6767 bot_id : Id < UserMarker > ,
6868}
6969
@@ -123,21 +123,21 @@ impl XpdListenerInner {
123123 pub async fn invalidate_rewards ( & self , guild : Id < GuildMarker > ) -> Result < ( ) , Error > {
124124 let mut new_rewards = xpd_database:: guild_rewards ( & self . db , guild) . await ?;
125125 new_rewards. sort_by ( xpd_common:: compare_rewards_requirement) ;
126- self . rewards . insert ( guild, Arc :: new ( new_rewards) ) ;
126+ self . rewards . insert ( guild, new_rewards. into ( ) ) ;
127127 Ok ( ( ) )
128128 }
129129
130130 pub async fn get_guild_rewards (
131131 & self ,
132132 guild_id : Id < GuildMarker > ,
133- ) -> Result < Arc < Vec < RoleReward > > , Error > {
133+ ) -> Result < Arc < [ RoleReward ] > , Error > {
134134 if let Some ( rewards) = self . rewards . get ( & guild_id) {
135- return Ok ( Arc :: clone ( & rewards ) ) ;
135+ return Ok ( rewards . clone ( ) ) ;
136136 }
137137 let mut rewards = xpd_database:: guild_rewards ( & self . db , guild_id) . await ?;
138138 rewards. sort_by ( xpd_common:: compare_rewards_requirement) ;
139139
140- let new_copy = Arc :: new ( rewards) ;
140+ let new_copy: Arc < [ RoleReward ] > = rewards. into ( ) ;
141141 self . rewards . insert ( guild_id, new_copy. clone ( ) ) ;
142142 Ok ( new_copy)
143143 }
0 commit comments