db_integer.anubis 1.69 KB
/*
 * 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 !
  }}
.