class PaginationEvaluator {

    @VisibleForTesting
    String encode(T value) {
        String id = idExtractor.apply(value);
        long timeStamp = Evaluators.getOrDefault(timestampExtractor.apply(value), 0L);
        return Base64.getEncoder().encodeToString((id + '@' + timeStamp).getBytes());
    }

    public  PaginationEvaluator(Function<T, String> idExtractor, Function<T, Long> timestampExtractor);

}