Current section

Files

Jump to
exqlite lib exqlite flags.ex
Raw

lib/exqlite/flags.ex

defmodule Exqlite.Flags do
@moduledoc false
import Bitwise
# https://www.sqlite.org/c3ref/c_open_autoproxy.html
@file_open_flags [
sqlite_open_readonly: 0x00000001,
sqlite_open_readwrite: 0x00000002,
sqlite_open_create: 0x00000004,
sqlite_open_deleteonclos: 0x00000008,
sqlite_open_exclusive: 0x00000010,
sqlite_open_autoproxy: 0x00000020,
sqlite_open_uri: 0x00000040,
sqlite_open_memory: 0x00000080,
sqlite_open_main_db: 0x00000100,
sqlite_open_temp_db: 0x00000200,
sqlite_open_transient_db: 0x00000400,
sqlite_open_main_journal: 0x00000800,
sqlite_open_temp_journal: 0x00001000,
sqlite_open_subjournal: 0x00002000,
sqlite_open_super_journal: 0x00004000,
sqlite_open_nomutex: 0x00008000,
sqlite_open_fullmutex: 0x00010000,
sqlite_open_sharedcache: 0x00020000,
sqlite_open_privatecache: 0x00040000,
sqlite_open_wal: 0x00080000,
sqlite_open_nofollow: 0x01000000,
sqlite_open_exrescode: 0x02000000
]
def put_file_open_flags(current_flags \\ 0, flags) do
Enum.reduce(flags, current_flags, &(&2 ||| Keyword.fetch!(@file_open_flags, &1)))
end
end