defmodule Protobuf.Protoc.Context do # Plugins passed by options defstruct plugins: [], # All files scope # Mapping from file name to (mapping from type name to metadata, like elixir type name) # %{"example.proto" => %{".example.FooMsg" => %{type_name: "Example.FooMsg"}}} global_type_mapping: %{}, # A file scope # Package name package: nil, module_prefix: nil, syntax: nil, # Mapping from type_name to metadata. It's merged type mapping of dependencies files including itself # %{".example.FooMsg" => %{type_name: "Example.FooMsg"}} dep_type_mapping: %{}, # For a message # Nested namespace when generating nested messages. It should be joined to get the full namespace namespace: [] end