diff --git a/src/event_processor.rs b/src/event_processor.rs index 8c80817..7c77927 100644 --- a/src/event_processor.rs +++ b/src/event_processor.rs @@ -183,11 +183,11 @@ fn process_event( } fn notice_user(user_cache: &mut LruCache, user: &MaybeInlinedUser) -> bool { - let key = user.key(); + let key = user.key().to_string(); - if user_cache.get(key).is_none() { + if user_cache.get(&key).is_none() { trace!("noticing new user {:?}", key); - user_cache.put(key.clone(), ()); + user_cache.put(key, ()); true } else { trace!("ignoring already-seen user {:?}", key); diff --git a/src/events.rs b/src/events.rs index e109b8a..ca13b11 100644 --- a/src/events.rs +++ b/src/events.rs @@ -47,7 +47,7 @@ impl MaybeInlinedUser { } } - pub fn key(&self) -> &String { + pub fn key(&self) -> &str { self.user().key() } } @@ -123,8 +123,6 @@ impl Event { default: FlagValue, send_reason: bool, ) -> Self { - let user_key = user.key().clone(); - // unwrap is safe here because value should have been replaced with default if it was None. // TODO that is ugly, use the type system to fix it let value = detail.value.unwrap(); @@ -136,11 +134,11 @@ impl Event { }; Event::FeatureRequest { + user_key: user.key().to_string(), base: BaseEvent { creation_date: Self::now(), user, }, - user_key, key: flag_key.to_owned(), default, reason, @@ -152,13 +150,12 @@ impl Event { } pub fn new_identify(user: User) -> Self { - let key = user.key().clone(); Event::Identify(IdentifyEvent { + key: user.key().to_string(), base: BaseEvent { creation_date: Self::now(), user: MaybeInlinedUser::new(true, user), }, - key, }) }