Packages

The Phi Programming Language

Current section

Files

Jump to
phi stdlib Foreign.hrl
Raw

stdlib/Foreign.hrl

%%---------------------------------------------------------------------------
%% |
%% Header : Foreign
%% Copyright : (c) 2020-2021 EMQ Technologies Co., Ltd.
%% License : BSD-style (see the LICENSE file)
%%
%% Maintainer : Feng Lee, feng@emqx.io
%% Yang M, yangm@emqx.io
%% Stability : experimental
%% Portability : portable
%%
%% The Foreign Header File
%%
%%---------------------------------------------------------------------------
-ifndef(FOREIGN_HRL).
-define(FOREIGN_HRL, true).
-define(IO(Expr), fun() -> (Expr) end).
-define(RunIO(IO), (IO)()).
-define(EvalIO(IO), 'Control.Monad':pureImpl(?RunIO(IO))).
-define(TOFFI(M, I, F), ('Foreign':toFFI(M:I()))(F)).
-define(TOFFIs(M, I, L), begin FFI = 'Foreign':toFFI(M:I()), [FFI(F) || F <- L] end).
-include("./Foreign/Maybe.hrl").
-endif.