Skip to main content

lib/pi/protocol/api/module.ex

defmodule Pi.Protocol.API.Module do
  @moduledoc "A module exposed as part of the Pi API inventory."

  use JSONCodec, fast_path: :json

  alias Pi.Protocol.API.Function

  defstruct [:name, :module, functions: []]

  @type t :: %__MODULE__{name: atom(), module: atom(), functions: [Function.t()]}

  codec(:name, atom: :unsafe)
  codec(:module, atom: :unsafe)
end