e9p_msg (e9p v0.1.0)

Protocol messages parsing and encoding.

Summary

Types

message/0

-type message() :: request_message() | response_message().

request_message/0

-type request_message() ::
          #tversion{max_packet_size :: term(), version :: term()} |
          #tauth{afid :: term(), uname :: term(), aname :: term()} |
          #tattach{fid :: term(), afid :: term(), uname :: term(), aname :: term()} |
          #tflush{tag :: term()} |
          #twalk{fid :: term(), new_fid :: term(), names :: term()} |
          #topen{fid :: term(), mode :: term()} |
          #tcreate{fid :: term(), name :: term(), perm :: term(), mode :: term()} |
          #tread{fid :: term(), offset :: term(), len :: term()} |
          #twrite{fid :: term(), offset :: term(), data :: term()} |
          #tclunk{fid :: term()} |
          #tremove{fid :: term()} |
          #tstat{fid :: term()} |
          #twstat{fid :: term(), stat :: term()}.

response_message/0

-type response_message() ::
          #rversion{max_packet_size :: term(), version :: term()} |
          #rauth{aqid :: term()} |
          #rattach{qid :: term()} |
          #rerror{msg :: term()} |
          #rflush{} |
          #rwalk{qids :: term()} |
          #ropen{qid :: term(), io_unit :: term()} |
          #rcreate{qid :: term(), io_unit :: term()} |
          #rread{data :: term()} |
          #rwrite{len :: term()} |
          #rclunk{} |
          #rstat{stat :: term()} |
          #rwstat{}.

tag/0

-type tag() :: 0..65535.

Functions

encode(Tag, Data)

-spec encode(Tag :: tag() | notag, Data :: message()) -> iodata().

encode_stat(Stat)

parse(_)

-spec parse(binary()) -> {ok, tag(), message()} | {error, term()}.

parse_stat(_)