// 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 parm, ownership remains with caller decl use @type @name (mode=use) alias parm; // supply: inout parm, 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 parm, ownership goes to callee decl provide @type @name (mode=provide) alias parm; // return: out parm, 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 }