-module(i3_client_publish). -export([wrap/2, call/3, unwrap/1, null/2]). wrap(Mod, ModState) -> {ModState, fun Mod:publish/3}. null(_Mod, ModState) -> {ModState, fun(_, _, S) -> S end}. call(Type, Payload, {ModState, Publish}) -> {Publish(Type, Payload, ModState), Publish}. unwrap({ModState, _}) -> ModState.