Current section
Files
Jump to
Current section
Files
src/passage_example.erl
%% @copyright 2017 Takeru Ohta <phjgt308@gmail.com>%%%% @private-module(passage_example).-compile({parse_transform, passage_transform}).%%------------------------------------------------------------------------------%% Exported API%%-------------------------------------------------------------------------------export([hello/1]).%%------------------------------------------------------------------------------%% Exported Functions%%-------------------------------------------------------------------------------passage_trace([{tags, #{kind => "greeting", name => "Name"}}]).-spec hello(atom()) -> ok.hello(Name) -> io:format("Hello ~s\n", [Name]), {ok, Child} = hello_child(Name), _ = hello_sibling(Child, Name), ok.%%------------------------------------------------------------------------------%% Internal Functions%%-------------------------------------------------------------------------------passage_trace([{error_if, "{error, _}"}, error_if_exception]).-spec hello_child(atom()) -> {ok, passage:maybe_span()} | {error, term()}.hello_child(Name) -> case Name of undefined -> {error, unknown_person}; error -> error(bad_name); _ -> io:format("[child] Hello ~s\n", [Name]), {ok, passage_pd:current_span()} end.-passage_trace([{follows_from, "Span"}]).-spec hello_sibling(passage:maybe_span(), atom()) -> ok.hello_sibling(Span, Name) -> io:format("[sibling] Hello ~s\n", [Name]), ok.