segmented_cache_helpers (segmented_cache v0.5.1)

View Source

Summary

Types

config/0

-type config() ::
          #segmented_cache{scope :: segmented_cache:scope(),
                           name :: segmented_cache:name(),
                           strategy :: segmented_cache:strategy(),
                           entries_limit :: segmented_cache:entries_limit(),
                           index :: atomics:atomics_ref(),
                           segments :: tuple(),
                           merger_fun :: merger_fun(term())}.

iterative_fun/2

-type iterative_fun(Key, Value) :: fun((ets:tid(), Key) -> {continue | stop, Value}).

merger_fun/1

-type merger_fun(Value) :: fun((Value, Value) -> Value).

span/0

-type span() :: fun(() -> {term(), span_metadata()}).

span_metadata/0

-type span_metadata() :: #{hit := boolean()}.

Functions

delete_entry(Name, Key)

-spec delete_entry(segmented_cache:name(), segmented_cache:key()) -> true.

delete_pattern(Name, Pattern)

-spec delete_pattern(segmented_cache:name(), ets:match_pattern()) -> true.

erase_cache_config(Name)

-spec erase_cache_config(segmented_cache:name()) -> boolean().

get_cache_scope(Name)

-spec get_cache_scope(segmented_cache:name()) -> segmented_cache:scope().

get_entry_span(Name, Key)

-spec get_entry_span(segmented_cache:name(), segmented_cache:key()) -> span().

init_cache_config(Name, Opts0)

-spec init_cache_config(segmented_cache:name(), segmented_cache:opts()) ->
                           #{scope := segmented_cache:scope(), ttl := timeout()}.

is_member_span(Name, Key)

-spec is_member_span(segmented_cache:name(), segmented_cache:key()) -> span().

merge_entry(Name, Key, Value)

purge_last_segment_and_rotate(Name)

-spec purge_last_segment_and_rotate(segmented_cache:name()) -> non_neg_integer().

put_entry_front(Name, Key, Value)