// p≡p API Y language
|
|
|
|
// Copyleft (c) 2019, p≡p foundation
|
|
// this file is under GNU General Public License 3.0
|
|
// see LICENSE.txt
|
|
|
|
// written by Volker Birk
|
|
|
|
|
|
decl package @name;
|
|
decl api @name (type=api) alias package;
|
|
decl type @name;
|
|
decl extends @type;
|
|
decl enum @name;
|
|
decl item @name;
|
|
decl struct @name;
|
|
decl field @type @name;
|
|
decl hex is item (output=hex);
|
|
decl flag @name;
|
|
decl protocol @name;
|
|
decl method @name;
|
|
|
|
// use: readonly in param, ownership remains with caller
|
|
decl use @type @name (mode=use) alias parm;
|
|
|
|
// supply: inout param, ownership remains with caller
|
|
decl supply @type @name (mode=supply) alias parm;
|
|
|
|
// create: factory delivers this, ownership goes to caller
|
|
decl create @type @name (mode=create) alias parm;
|
|
|
|
// provide: in param, ownership goes to callee
|
|
decl provide @type @name (mode=provide) alias parm;
|
|
|
|
// return: out param, ownership goes to callee
|
|
decl return @type @name (mode=return) alias parm;
|
|
|
|
decl throws @except;
|
|
decl caveat(mode=caveat) alias doc;
|
|
|
|
|
|
package pEp {
|
|
api transport include ./transport_api.yml2
|
|
api message include ./message_api.yml2
|
|
api keymanagement include ./keymanagement_api.yml2
|
|
api basic include ./basic_api.yml2
|
|
}
|
|
|