protox

package module
v0.0.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2026 License: BSD-2-Clause Imports: 10 Imported by: 0

README

protox

Usage

1. Copy protox.proto files.

Add the protox.proto into your proto folder. The folder includes by folder configured in inputs section in buf.yaml

proto_directory/
  \_ protox/
     \_ protox.proto
2. Import protox.proto in your on .proto file.
syntax = "proto3";

package test;

import "protox.proto";
Use field and message descripters
message Test {
  // ignore the field in json marshal and unmarshal
  int64 id = 1 [(protox.gojson) = '-'];
  // json name is 'NAME', and only used to marshal into json, but can not unmarshal from json
  optional string name   = 2 [(protox.gojson) = "NAME,readonly"];
  // json name is '_public', and only used to unmarshal from json, but can not marshal into json
  optional string Public = 3 [(protox.gojson) = "_public,writeonly"];

  // command fields
  string publicId = 5;
  string type = 8; 
  string description = 9;
  int64 projectId = 11;
  // protox.Timestamp will be marshaled into a timestamp integer in seconds
  protox.Timestamp createTime = 12;

  // this strutcure will be serialized into json while being inserted into database
  // the json serializer will ignore the (protox.gojson) option defined above.
  option (protox.gosql) = {
    serializer: "json"
  };
  // custom a golang method for structure
  option (protox.gomethod) = {
    name  : "Table",
    return: "Test"
  };
}

3. Use protox plugin in buf.yaml
go install github.com/cloudfly/protoxy/cmd/protox@latest
plugins:
  - local: protox
    out: gen
    opt: 
      - paths=source_relative
      - out=gen
managed:
  enabled: true
  override:
    - file_option: go_package_prefix
      value: github.com/username/project
  disable:
    - path: protox/protox.proto

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// repeated protox.GoMethodOption method = 78901;
	E_Method = &file_protox_proto_extTypes[0]
	// optional protox.SQLOption sql = 78902;
	E_Sql = &file_protox_proto_extTypes[1]
	// optional protox.InheritOption inherit = 78903;
	E_Inherit = &file_protox_proto_extTypes[2]
	// optional protox.ApiOption api = 78904;
	E_Api = &file_protox_proto_extTypes[3]
	// optional protox.OrmOption orm = 78905;
	E_Orm = &file_protox_proto_extTypes[4]
	// optional bool doc = 78906;
	E_Doc = &file_protox_proto_extTypes[5]
)

Extension fields to descriptorpb.MessageOptions.

View Source
var (
	// optional string json = 78902;
	E_Json = &file_protox_proto_extTypes[6]
	// optional string tag = 78904;
	E_Tag = &file_protox_proto_extTypes[7]
	// optional string class = 78905;
	E_Class = &file_protox_proto_extTypes[8]
)

Extension fields to descriptorpb.FieldOptions.

View Source
var (
	// optional string error = 78903;
	E_Error = &file_protox_proto_extTypes[9]
)

Extension fields to descriptorpb.EnumValueOptions.

View Source
var File_protox_proto protoreflect.FileDescriptor
View Source
var ProtoxMessages = []*doc.Message{
	{
		Name:    "Timestamp",
		Comment: []string{},
		Package: "protox",
		Fields: []doc.Field{
			{
				Name:     "millis",
				Comment:  []string{},
				Type:     "uint64",
				Required: true,
			},
		},
	},
	{
		Name:    "GoMethodOption",
		Comment: []string{},
		Package: "protox",
		Fields: []doc.Field{
			{
				Name:     "name",
				Comment:  []string{},
				Type:     "string",
				Required: true,
			},
			{
				Name:     "returnString",
				Comment:  []string{},
				Type:     "string",
				Required: false,
			},
			{
				Name:     "returnInt64",
				Comment:  []string{},
				Type:     "int64",
				Required: false,
			},
			{
				Name:     "returnBool",
				Comment:  []string{},
				Type:     "bool",
				Required: false,
			},
		},
	},
	{
		Name:    "SQLOption",
		Comment: []string{},
		Package: "protox",
		Fields: []doc.Field{
			{
				Name:     "serializer",
				Comment:  []string{},
				Type:     "string",
				Required: false,
			},
		},
	},
	{
		Name:    "InheritOption",
		Comment: []string{},
		Package: "protox",
		Fields: []doc.Field{
			{
				Name:     "message",
				Comment:  []string{},
				Type:     "string",
				Required: true,
			},
			{
				Name:     "omit",
				Comment:  []string{},
				Type:     "[]string",
				Required: true,
			},
		},
	},
	{
		Name:    "ApiOption",
		Comment: []string{},
		Package: "protox",
		Fields: []doc.Field{
			{
				Name:     "enable",
				Comment:  []string{},
				Type:     "bool",
				Required: true,
			},
		},
	},
	{
		Name:    "OrmOption",
		Comment: []string{},
		Package: "protox",
		Fields: []doc.Field{
			{
				Name:     "enable",
				Comment:  []string{},
				Type:     "bool",
				Required: true,
			},
			{
				Name:     "table",
				Comment:  []string{},
				Type:     "string",
				Required: false,
			},
			{
				Name:     "filterMessage",
				Comment:  []string{},
				Type:     "string",
				Required: false,
			},
			{
				Name:     "patchMessage",
				Comment:  []string{},
				Type:     "string",
				Required: false,
			},
		},
	},
}
View Source
var ProtoxServices = []*doc.Service{}

Functions

This section is empty.

Types

type ApiOption added in v0.0.12

type ApiOption struct {
	Enable bool `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
	// contains filtered or unexported fields
}

func (*ApiOption) Descriptor deprecated added in v0.0.12

func (*ApiOption) Descriptor() ([]byte, []int)

Deprecated: Use ApiOption.ProtoReflect.Descriptor instead.

func (*ApiOption) GetEnable added in v0.0.12

func (x *ApiOption) GetEnable() bool

func (*ApiOption) ProtoMessage added in v0.0.12

func (*ApiOption) ProtoMessage()

func (*ApiOption) ProtoReflect added in v0.0.12

func (x *ApiOption) ProtoReflect() protoreflect.Message

func (*ApiOption) Reset added in v0.0.12

func (x *ApiOption) Reset()

func (*ApiOption) String added in v0.0.12

func (x *ApiOption) String() string

type GoMethodOption

type GoMethodOption struct {
	Name         string  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	ReturnString *string `protobuf:"bytes,2,opt,name=returnString,proto3,oneof" json:"returnString,omitempty"`
	ReturnInt64  *int64  `protobuf:"varint,3,opt,name=returnInt64,proto3,oneof" json:"returnInt64,omitempty"`
	ReturnBool   *bool   `protobuf:"varint,4,opt,name=returnBool,proto3,oneof" json:"returnBool,omitempty"`
	// contains filtered or unexported fields
}

func (*GoMethodOption) Descriptor deprecated

func (*GoMethodOption) Descriptor() ([]byte, []int)

Deprecated: Use GoMethodOption.ProtoReflect.Descriptor instead.

func (*GoMethodOption) GetName

func (x *GoMethodOption) GetName() string

func (*GoMethodOption) GetReturnBool added in v0.0.9

func (x *GoMethodOption) GetReturnBool() bool

func (*GoMethodOption) GetReturnInt64 added in v0.0.9

func (x *GoMethodOption) GetReturnInt64() int64

func (*GoMethodOption) GetReturnString added in v0.0.9

func (x *GoMethodOption) GetReturnString() string

func (*GoMethodOption) ProtoMessage

func (*GoMethodOption) ProtoMessage()

func (*GoMethodOption) ProtoReflect

func (x *GoMethodOption) ProtoReflect() protoreflect.Message

func (*GoMethodOption) Reset

func (x *GoMethodOption) Reset()

func (*GoMethodOption) String

func (x *GoMethodOption) String() string

type InheritOption added in v0.0.11

type InheritOption struct {
	Message string   `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	Omit    []string `protobuf:"bytes,2,rep,name=omit,proto3" json:"omit,omitempty"`
	// contains filtered or unexported fields
}

func (*InheritOption) Descriptor deprecated added in v0.0.11

func (*InheritOption) Descriptor() ([]byte, []int)

Deprecated: Use InheritOption.ProtoReflect.Descriptor instead.

func (*InheritOption) GetMessage added in v0.0.11

func (x *InheritOption) GetMessage() string

func (*InheritOption) GetOmit added in v0.0.11

func (x *InheritOption) GetOmit() []string

func (*InheritOption) ProtoMessage added in v0.0.11

func (*InheritOption) ProtoMessage()

func (*InheritOption) ProtoReflect added in v0.0.11

func (x *InheritOption) ProtoReflect() protoreflect.Message

func (*InheritOption) Reset added in v0.0.11

func (x *InheritOption) Reset()

func (*InheritOption) String added in v0.0.11

func (x *InheritOption) String() string

type OrmOption added in v0.0.22

type OrmOption struct {
	Enable        bool    `protobuf:"varint,2,opt,name=enable,proto3" json:"enable,omitempty"`
	Table         *string `protobuf:"bytes,3,opt,name=table,proto3,oneof" json:"table,omitempty"`
	FilterMessage *string `protobuf:"bytes,4,opt,name=filterMessage,proto3,oneof" json:"filterMessage,omitempty"`
	PatchMessage  *string `protobuf:"bytes,5,opt,name=patchMessage,proto3,oneof" json:"patchMessage,omitempty"`
	// contains filtered or unexported fields
}

func (*OrmOption) Descriptor deprecated added in v0.0.22

func (*OrmOption) Descriptor() ([]byte, []int)

Deprecated: Use OrmOption.ProtoReflect.Descriptor instead.

func (*OrmOption) GetEnable added in v0.0.22

func (x *OrmOption) GetEnable() bool

func (*OrmOption) GetFilterMessage added in v0.0.22

func (x *OrmOption) GetFilterMessage() string

func (*OrmOption) GetPatchMessage added in v0.0.22

func (x *OrmOption) GetPatchMessage() string

func (*OrmOption) GetTable added in v0.0.22

func (x *OrmOption) GetTable() string

func (*OrmOption) ProtoMessage added in v0.0.22

func (*OrmOption) ProtoMessage()

func (*OrmOption) ProtoReflect added in v0.0.22

func (x *OrmOption) ProtoReflect() protoreflect.Message

func (*OrmOption) Reset added in v0.0.22

func (x *OrmOption) Reset()

func (*OrmOption) String added in v0.0.22

func (x *OrmOption) String() string

type SQLOption

type SQLOption struct {
	Serializer *string `protobuf:"bytes,2,opt,name=serializer,proto3,oneof" json:"serializer,omitempty"`
	// contains filtered or unexported fields
}

func (*SQLOption) Descriptor deprecated

func (*SQLOption) Descriptor() ([]byte, []int)

Deprecated: Use SQLOption.ProtoReflect.Descriptor instead.

func (*SQLOption) GetSerializer

func (x *SQLOption) GetSerializer() string

func (*SQLOption) ProtoMessage

func (*SQLOption) ProtoMessage()

func (*SQLOption) ProtoReflect

func (x *SQLOption) ProtoReflect() protoreflect.Message

func (*SQLOption) Reset

func (x *SQLOption) Reset()

func (*SQLOption) String

func (x *SQLOption) String() string

type Timestamp

type Timestamp struct {
	Millis uint64 `protobuf:"varint,1,opt,name=millis,proto3" json:"millis,omitempty"`
	// contains filtered or unexported fields
}

func (*Timestamp) Descriptor deprecated

func (*Timestamp) Descriptor() ([]byte, []int)

Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.

func (*Timestamp) GetMillis added in v0.0.11

func (x *Timestamp) GetMillis() uint64

func (Timestamp) MarshalBSONValue added in v0.0.20

func (x Timestamp) MarshalBSONValue() (byte, []byte, error)

func (*Timestamp) ProtoMessage

func (*Timestamp) ProtoMessage()

func (*Timestamp) ProtoReflect

func (x *Timestamp) ProtoReflect() protoreflect.Message

func (*Timestamp) Reset

func (x *Timestamp) Reset()

func (*Timestamp) Scan

func (x *Timestamp) Scan(src any) error

func (*Timestamp) String

func (x *Timestamp) String() string

func (*Timestamp) Time

func (x *Timestamp) Time() time.Time

func (*Timestamp) UnmarshalBSONValue added in v0.0.20

func (x *Timestamp) UnmarshalBSONValue(typ byte, data []byte) error

func (Timestamp) Value

func (x Timestamp) Value() (driver.Value, error)

Directories

Path Synopsis
cmd
protox command
doc

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL