Current section
Files
Jump to
Current section
Files
src/glite@config.erl
-module(glite@config).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glite/config.gleam").
-export([default/0, file/1, memory/0, path/2, timeout/2, busy_timeout/2, journal_mode/2, synchronous/2, foreign_keys/2, pragma/3]).
-export_type([journal_mode/0, synchronous_mode/0, config/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type journal_mode() :: wal | delete | memory | off.
-type synchronous_mode() :: full | normal | sync_off.
-type config() :: {config,
binary(),
integer(),
integer(),
journal_mode(),
synchronous_mode(),
boolean(),
list({binary(), binary()})}.
-file("src/glite/config.gleam", 45).
?DOC(" Default config for an in-memory database with WAL mode\n").
-spec default() -> config().
default() ->
{config, <<":memory:"/utf8>>, 15000, 5000, wal, normal, true, []}.
-file("src/glite/config.gleam", 58).
?DOC(" Create a config for a file-based database\n").
-spec file(binary()) -> config().
file(Path) ->
_record = default(),
{config,
Path,
erlang:element(3, _record),
erlang:element(4, _record),
erlang:element(5, _record),
erlang:element(6, _record),
erlang:element(7, _record),
erlang:element(8, _record)}.
-file("src/glite/config.gleam", 63).
?DOC(" Create a config for an in-memory database\n").
-spec memory() -> config().
memory() ->
default().
-file("src/glite/config.gleam", 67).
-spec path(config(), binary()) -> config().
path(Config, Path) ->
{config,
Path,
erlang:element(3, Config),
erlang:element(4, Config),
erlang:element(5, Config),
erlang:element(6, Config),
erlang:element(7, Config),
erlang:element(8, Config)}.
-file("src/glite/config.gleam", 71).
-spec timeout(config(), integer()) -> config().
timeout(Config, Timeout) ->
{config,
erlang:element(2, Config),
Timeout,
erlang:element(4, Config),
erlang:element(5, Config),
erlang:element(6, Config),
erlang:element(7, Config),
erlang:element(8, Config)}.
-file("src/glite/config.gleam", 75).
-spec busy_timeout(config(), integer()) -> config().
busy_timeout(Config, Busy_timeout) ->
{config,
erlang:element(2, Config),
erlang:element(3, Config),
Busy_timeout,
erlang:element(5, Config),
erlang:element(6, Config),
erlang:element(7, Config),
erlang:element(8, Config)}.
-file("src/glite/config.gleam", 79).
-spec journal_mode(config(), journal_mode()) -> config().
journal_mode(Config, Mode) ->
{config,
erlang:element(2, Config),
erlang:element(3, Config),
erlang:element(4, Config),
Mode,
erlang:element(6, Config),
erlang:element(7, Config),
erlang:element(8, Config)}.
-file("src/glite/config.gleam", 83).
-spec synchronous(config(), synchronous_mode()) -> config().
synchronous(Config, Mode) ->
{config,
erlang:element(2, Config),
erlang:element(3, Config),
erlang:element(4, Config),
erlang:element(5, Config),
Mode,
erlang:element(7, Config),
erlang:element(8, Config)}.
-file("src/glite/config.gleam", 87).
-spec foreign_keys(config(), boolean()) -> config().
foreign_keys(Config, Enabled) ->
{config,
erlang:element(2, Config),
erlang:element(3, Config),
erlang:element(4, Config),
erlang:element(5, Config),
erlang:element(6, Config),
Enabled,
erlang:element(8, Config)}.
-file("src/glite/config.gleam", 91).
-spec pragma(config(), binary(), binary()) -> config().
pragma(Config, Name, Value) ->
{config,
erlang:element(2, Config),
erlang:element(3, Config),
erlang:element(4, Config),
erlang:element(5, Config),
erlang:element(6, Config),
erlang:element(7, Config),
[{Name, Value} | erlang:element(8, Config)]}.