View Source locus_custom_fetcher behaviour (locus v2.3.12)
Callbacks for providing your own database fetcher
Summary
Types
-type event() :: event_load_attempt_started() | event_load_attempt_dismissed().
-type event_load_attempt_dismissed() :: {load_attempt_dismissed, source()}.
-type event_load_attempt_started() :: {load_attempt_started, source()}.
-type source() :: {local | remote, {custom, term()}}.
-opaque state()
-type success() :: #{format := locus_loader:blob_format(), content := binary(), metadata := successful_fetch_metadata()}.
-type successful_fetch_metadata() :: #{fetched_from := term(), modified_on := calendar:datetime() | unknown}.
Callbacks
-callback conditionally_fetch(Args, {depending_on, PreviousFetchMetadata}) -> {fetched, Success} | dismissed | {error, Reason} when Args :: term(), PreviousFetchMetadata :: successful_fetch_metadata(), Success :: success(), Reason :: term().
-callback description(Args) -> description() when Args :: term().