@Nonnull
    public static <T, K> MappedChannelReceiver<T, K, T> createExpiring(@Nonnull Channel<T> channel, @Nonnull Function<? super T, ? extends K> keyMapper, long expiryDuration, @Nonnull TimeUnit unit) {
        return new MappedChannelReceiver<>(channel, keyMapper, Function.identity(), new CacheMessageStore<>(expiryDuration, unit));
    }
Creates a new expiring mapped channel receiver.

@param channel the channel
@param keyMapper the function used to map keys
@param expiryDuration the duration to expire entries after
@param unit the unit of the duration
@param <T> the message type
@param <K> the key type
@return a new mapped channel receiver
helper/src/main/java/me/lucko/helper/messaging/util/MappedChannelReceiver.java