db_integer.anubis
1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
* Created by 伝作 (Densaku).
* Types & Messages generator written by フランスのトトロ aka (David RENÉ)
* Date: 2017-02-15
* Time: 02:18:49
*
*/
transmit system/muscle.anubis
transmit system/convert.anubis
transmit tools/basis.anubis
public type DB_integer:
db_integer(
Int value //Integer from datatase
)
.
DB_integer message format
=========================
public define Message
to_Message
(
DB_integer _db_integer
)=
with _db_integer_message = message((Word32)0), //
forget(add_string(_db_integer_message, "__TYPE__", "DB_integer"));
if _db_integer is
{
//Alternative db_integer
db_integer(_value) then
forget(add_string(_db_integer_message, "__TYPE_ALT__", "db_integer"));
// [type = Int] db_integer.value
forget(add_string(_db_integer_message, "value", to_String(_value))),
};
_db_integer_message
.
public define Maybe(DB_integer)
from_Message
(
Message _db_integer_message
)=
if find_string(_db_integer_message, "__TYPE__") is {failure then failure, success(__type__) then
if find_string(_db_integer_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then
if __type__ = "DB_integer" then
//Alternative db_integer
if __type_alt__ = "db_integer" then //Alternative db_integer
// [type = Int] db_integer.value
if find_string(_db_integer_message, "value") is {failure then failure, success(_value) then
if decimal_scan(_value) is { failure then failure, success(value) then
success(db_integer(value))
}}
else
failure //No valid Alternative found !
else
failure //Type not found in message !
}}
.