db_date.anubis
1.54 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
/*
* 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_date:
db_date(
String date //Date and time in ISO8601 format "YYYY-MM-DD"
)
.
DB_date message format
======================
public define Message
to_Message
(
DB_date _db_date
)=
with _db_date_message = message((Word32)0), //
forget(add_string(_db_date_message, "__TYPE__", "DB_date"));
if _db_date is
{
//Alternative db_date
db_date(_date) then
forget(add_string(_db_date_message, "__TYPE_ALT__", "db_date"));
// [type = String] db_date.date
forget(add_string(_db_date_message, "date", _date)),
};
_db_date_message
.
public define Maybe(DB_date)
from_Message
(
Message _db_date_message
)=
if find_string(_db_date_message, "__TYPE__") is {failure then failure, success(__type__) then
if find_string(_db_date_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then
if __type__ = "DB_date" then
//Alternative db_date
if __type_alt__ = "db_date" then //Alternative db_date
// [type = String] db_date.date
if find_string(_db_date_message, "date") is {failure then failure, success(date) then
success(db_date(date))
}
else
failure //No valid Alternative found !
else
failure //Type not found in message !
}}
.