anchor.diff:          , ping/2
           , service_available/2
           , known_methods/2
  +        , uri_too_long/2
  +        , allowed_methods/2
           ]).
   
   %%_* Types =====================================================================
   
  --type context() :: unrest_context:context().
  --type flow_result() :: unrest_flow:flow_result().
  +-type context() :: term().
   -type req() :: cowboy_req:req().
   
   %%_* API =======================================================================
  
positive.code: %%
  %% @doc The entry point to your resource
  %%
  -spec init(context()) -> flow_result().
  init(Ctx) ->
    {ok, Ctx}.
  
  %%
  %% @doc The `ping` function is optional, you don't need to implement it
  %%
  -spec ping(req(), context()) -> pong | pang.
  ping(_, _) ->
    pong.
  
  -spec service_available(req(), context()) -> pong | pang.
  service_available(Req, Ctx) ->
  
negative.code: known_methods(Req, Ctx) ->
    {[<<"GET">>], Req, Ctx}.
  
  -spec uri_too_long(req(), context()) -> pong | pang.
  uri_too_long(Req, Ctx) ->
    {false, Req, Ctx}.
  
  -spec allowed_methods(req(), context()) -> pong | pang.
  allowed_methods(Req, Ctx) ->
    {[<<"GET">>], Req, Ctx}.
  
  %%% Local Variables:
  %%% erlang-indent-level: 2
  %%% End:
  