Hyper.Grpc.Codec (Hyper v0.1.0)

Copy Markdown View Source

Translation between the gRPC wire types (Hyper.Grpc.V0.*) and Hyper's domain types. Two entry points, each dispatching by pattern match on the value's type:

  • from_grpc/1 -- an inbound request message -> a domain value.
  • to_grpc/1 -- a domain result (or error) -> an outbound response message, or a GRPC.RPCError for the server to raise.

Summary

Functions

Convert an inbound request message to a domain value.

Convert a domain result to an outbound response message, or an error to GRPC.RPCError.

Functions

from_grpc(req)

@spec from_grpc(Hyper.Grpc.V0.CreateVmRequest.t()) ::
  {:ok, Hyper.Vm.Spec.t()} | {:error, term()}
@spec from_grpc(Hyper.Grpc.V0.LoadImageRequest.t()) ::
  {:ok, {String.t(), keyword()}} | {:error, :missing_image_ref}

Convert an inbound request message to a domain value.

to_grpc(arg1)

@spec to_grpc({:created, Hyper.Vm.Id.t(), node()}) ::
  Hyper.Grpc.V0.CreateVmResponse.t()
@spec to_grpc({:forked, Hyper.Vm.Id.t(), node()}) :: Hyper.Grpc.V0.ForkVmResponse.t()
@spec to_grpc({:located, Hyper.Vm.Id.t(), node()}) :: Hyper.Grpc.V0.GetVmResponse.t()
@spec to_grpc({:usage, Hyper.Vm.Id.t(), Unit.Time.t()}) ::
  Hyper.Grpc.V0.GetVmUsageResponse.t()
@spec to_grpc({:vms, [{Hyper.Vm.Id.t(), node()}]}) ::
  Hyper.Grpc.V0.ListVmsResponse.t()
@spec to_grpc({:loaded, Hyper.Img.id()}) :: Hyper.Grpc.V0.LoadImageResponse.t()
@spec to_grpc(:stopped) :: Google.Protobuf.Empty.t()
@spec to_grpc({:error, term()}) :: GRPC.RPCError.t()

Convert a domain result to an outbound response message, or an error to GRPC.RPCError.