Current section
Files
Jump to
Current section
Files
src/mochi@document_cache.erl
-module(mochi@document_cache).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/mochi/document_cache.gleam").
-export([new_with_max/1, get/2, put/3, size/1, new/0]).
-export_type([document_cache/0, cache_inner/0]).
-opaque document_cache() :: {document_cache, cache_inner()}.
-type cache_inner() :: any().
-file("src/mochi/document_cache.gleam", 27).
-spec new_with_max(integer()) -> document_cache().
new_with_max(Max_size) ->
{document_cache, document_cache_ffi:new(Max_size)}.
-file("src/mochi/document_cache.gleam", 31).
-spec get(document_cache(), binary()) -> {ok, mochi@internal@ast:document()} |
{error, nil}.
get(Cache, Query) ->
document_cache_ffi:get(erlang:element(2, Cache), Query).
-file("src/mochi/document_cache.gleam", 35).
-spec put(document_cache(), binary(), mochi@internal@ast:document()) -> nil.
put(Cache, Query, Doc) ->
document_cache_ffi:put(erlang:element(2, Cache), Query, Doc).
-file("src/mochi/document_cache.gleam", 39).
-spec size(document_cache()) -> integer().
size(Cache) ->
document_cache_ffi:size(erlang:element(2, Cache)).
-file("src/mochi/document_cache.gleam", 23).
-spec new() -> document_cache().
new() ->
{document_cache, document_cache_ffi:new(1000)}.