summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-07-11 18:02:26 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-07-11 18:02:26 +0200
commitacb9dd3220a3edcac93aa11d1d74d008e2fb23ed (patch)
tree98b45af3f7eb9c7d812ed33a07e6a0f665a7a8cd /src/shared/struct/shr_db_item.erl
parentfde827cba1ff3d889135c74ee1978098465fd200 (diff)
"sh_" -> "shr_".
Diffstat (limited to 'src/shared/struct/shr_db_item.erl')
-rw-r--r--src/shared/struct/shr_db_item.erl80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/shared/struct/shr_db_item.erl b/src/shared/struct/shr_db_item.erl
new file mode 100644
index 0000000..546462e
--- /dev/null
+++ b/src/shared/struct/shr_db_item.erl
@@ -0,0 +1,80 @@
+-module(shr_db_item).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-record
+(
+ db_item,
+ {
+ id :: any(),
+ perm :: shr_db_user:permission(),
+ val :: any()
+ }
+).
+
+-type db_item() :: #db_item{}.
+
+-type type() :: db_item().
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export_type([type/0]).
+
+-export
+(
+ [
+ new/3,
+
+ get_id/1,
+ get_permission/1,
+ get_value/1,
+
+ set_permission/2,
+ set_value/2,
+
+ get_id_field/0,
+ get_record_info/0,
+ get_record_name/0
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec new (any(), shr_db_user:permission(), any()) -> type().
+new (ID, Permission, Value) ->
+ #db_item
+ {
+ id = ID,
+ perm = Permission,
+ val = Value
+ }.
+
+-spec get_id (type()) -> any().
+get_id (#db_item { id = Result }) -> Result.
+
+-spec get_permission (type()) -> shr_db_user:permission().
+get_permission (#db_item { perm = Result }) -> Result.
+
+-spec get_value (type()) -> any().
+get_value (#db_item { val = Result }) -> Result.
+
+-spec set_permission (shr_db_user:permission(), type()) -> type().
+set_permission (Perm, Item) -> Item#db_item{ perm = Perm }.
+
+-spec set_value (any(), type()) -> type().
+set_value (Value, Item) -> Item#db_item{ val = Value }.
+
+-spec get_id_field () -> non_neg_integer().
+get_id_field () -> #db_item.id.
+
+get_record_info () -> record_info(fields, db_item).
+
+get_record_name () -> db_item.
+