/* * 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 ! }} .