db_datetime.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
/*
* Created by 伝作 (Densaku).
* Types & Messages generator written by フランスのトトロ aka (David RENÉ)
* Date: 2017-02-15
* Time: 02:18:48
*
*/
transmit system/muscle.anubis
transmit system/convert.anubis
transmit tools/basis.anubis
public type DB_datetime:
db_datetime(
String datetime //Date and time in ISO8601 format "YYYY-MM-DD hh:mm:ss"
)
.
DB_datetime message format
==========================
public define Message
to_Message
(
DB_datetime _db_datetime
)=
with _db_datetime_message = message((Word32)0), //
forget(add_string(_db_datetime_message, "__TYPE__", "DB_datetime"));
if _db_datetime is
{
//Alternative db_datetime
db_datetime(_datetime) then
forget(add_string(_db_datetime_message, "__TYPE_ALT__", "db_datetime"));
// [type = String] db_datetime.datetime
forget(add_string(_db_datetime_message, "datetime", _datetime)),
};
_db_datetime_message
.
public define Maybe(DB_datetime)
from_Message
(
Message _db_datetime_message
)=
if find_string(_db_datetime_message, "__TYPE__") is {failure then failure, success(__type__) then
if find_string(_db_datetime_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then
if __type__ = "DB_datetime" then
//Alternative db_datetime
if __type_alt__ = "db_datetime" then //Alternative db_datetime
// [type = String] db_datetime.datetime
if find_string(_db_datetime_message, "datetime") is {failure then failure, success(datetime) then
success(db_datetime(datetime))
}
else
failure //No valid Alternative found !
else
failure //Type not found in message !
}}
.