Documentation
¶
Overview ¶
Package protocol is a generated protocol buffer package.
It is generated from these files:
gopkg.in/bblfsh/sdk.v1/protocol/generated.proto
It has these top-level messages:
NativeParseRequest NativeParseResponse ParseRequest ParseResponse VersionRequest VersionResponse
Example ¶
package main
import (
"context"
"fmt"
"net"
"time"
"gopkg.in/bblfsh/sdk.v1/protocol"
"google.golang.org/grpc"
)
func main() {
protocol.DefaultService = NewServiceMock()
lis, err := net.Listen("tcp", "localhost:0")
checkError(err)
server := grpc.NewServer()
protocol.RegisterProtocolServiceServer(
server,
protocol.NewProtocolServiceServer(),
)
go server.Serve(lis)
conn, err := grpc.Dial(lis.Addr().String(), grpc.WithTimeout(time.Second*2), grpc.WithInsecure())
checkError(err)
client := protocol.NewProtocolServiceClient(conn)
req := &protocol.ParseRequest{Content: "my source code"}
fmt.Println("Sending Parse for:", req.Content)
resp, err := client.Parse(context.TODO(), req)
checkError(err)
fmt.Println("Got response with status:", resp.Status)
server.GracefulStop()
}
func checkError(err error) {
if err != nil {
panic(err)
}
}
// ServiceMock implements the protocol.Servce interface and the methods to be
// used in the test.
type ServiceMock struct {
P func(req *protocol.ParseRequest) *protocol.ParseResponse
N func(req *protocol.NativeParseRequest) *protocol.NativeParseResponse
V func(*protocol.VersionRequest) *protocol.VersionResponse
}
func NewServiceMock() *ServiceMock {
return &ServiceMock{
P: func(req *protocol.ParseRequest) *protocol.ParseResponse {
return &protocol.ParseResponse{
Response: protocol.Response{Status: protocol.Ok},
}
},
N: func(req *protocol.NativeParseRequest) *protocol.NativeParseResponse {
return &protocol.NativeParseResponse{
Response: protocol.Response{Status: protocol.Ok},
}
},
}
}
func (m *ServiceMock) Parse(req *protocol.ParseRequest) *protocol.ParseResponse {
return m.P(req)
}
func (m *ServiceMock) NativeParse(req *protocol.NativeParseRequest) *protocol.NativeParseResponse {
return m.N(req)
}
func (m *ServiceMock) Version(req *protocol.VersionRequest) *protocol.VersionResponse {
return m.V(req)
}
Output: Sending Parse for: my source code Got response with status: Ok
Index ¶
- Variables
- func NewProtocolServiceServer() *protocolServiceServer
- func RegisterProtocolServiceServer(s *grpc.Server, srv ProtocolServiceServer)
- type Encoding
- type NativeParseRequest
- func (*NativeParseRequest) Descriptor() ([]byte, []int)
- func (m *NativeParseRequest) Marshal() (dAtA []byte, err error)
- func (m *NativeParseRequest) MarshalTo(dAtA []byte) (int, error)
- func (*NativeParseRequest) ProtoMessage()
- func (m *NativeParseRequest) ProtoSize() (n int)
- func (m *NativeParseRequest) Reset()
- func (m *NativeParseRequest) String() string
- func (m *NativeParseRequest) Unmarshal(dAtA []byte) error
- type NativeParseResponse
- func (*NativeParseResponse) Descriptor() ([]byte, []int)
- func (m *NativeParseResponse) Marshal() (dAtA []byte, err error)
- func (m *NativeParseResponse) MarshalTo(dAtA []byte) (int, error)
- func (*NativeParseResponse) ProtoMessage()
- func (m *NativeParseResponse) ProtoSize() (n int)
- func (m *NativeParseResponse) Reset()
- func (r *NativeParseResponse) String() string
- func (m *NativeParseResponse) Unmarshal(dAtA []byte) error
- type ParseRequest
- func (*ParseRequest) Descriptor() ([]byte, []int)
- func (m *ParseRequest) Marshal() (dAtA []byte, err error)
- func (m *ParseRequest) MarshalTo(dAtA []byte) (int, error)
- func (*ParseRequest) ProtoMessage()
- func (m *ParseRequest) ProtoSize() (n int)
- func (m *ParseRequest) Reset()
- func (m *ParseRequest) String() string
- func (m *ParseRequest) Unmarshal(dAtA []byte) error
- type ParseResponse
- func (*ParseResponse) Descriptor() ([]byte, []int)
- func (m *ParseResponse) Marshal() (dAtA []byte, err error)
- func (m *ParseResponse) MarshalTo(dAtA []byte) (int, error)
- func (*ParseResponse) ProtoMessage()
- func (m *ParseResponse) ProtoSize() (n int)
- func (m *ParseResponse) Reset()
- func (r *ParseResponse) String() string
- func (m *ParseResponse) Unmarshal(dAtA []byte) error
- type ProtocolServiceClient
- type ProtocolServiceServer
- type Response
- type Service
- type Status
- type VersionRequest
- func (*VersionRequest) Descriptor() ([]byte, []int)
- func (m *VersionRequest) Marshal() (dAtA []byte, err error)
- func (m *VersionRequest) MarshalTo(dAtA []byte) (int, error)
- func (*VersionRequest) ProtoMessage()
- func (m *VersionRequest) ProtoSize() (n int)
- func (m *VersionRequest) Reset()
- func (m *VersionRequest) String() string
- func (m *VersionRequest) Unmarshal(dAtA []byte) error
- type VersionResponse
- func (*VersionResponse) Descriptor() ([]byte, []int)
- func (m *VersionResponse) Marshal() (dAtA []byte, err error)
- func (m *VersionResponse) MarshalTo(dAtA []byte) (int, error)
- func (*VersionResponse) ProtoMessage()
- func (m *VersionResponse) ProtoSize() (n int)
- func (m *VersionResponse) Reset()
- func (m *VersionResponse) String() string
- func (m *VersionResponse) Unmarshal(dAtA []byte) error
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") )
var Encoding_name = map[int32]string{
0: "UTF8",
1: "BASE64",
}
Encoding is the encoding used for the content string. Currently only UTF-8 or Base64 encodings are supported. You should use UTF-8 if you can and Base64 as a fallback.
var Encoding_value = map[string]int32{
"UTF8": 0,
"BASE64": 1,
}
var Status_name = map[int32]string{
0: "OK",
1: "ERROR",
2: "FATAL",
}
Status is the status of a response.
var Status_value = map[string]int32{
"OK": 0,
"ERROR": 1,
"FATAL": 2,
}
Functions ¶
func NewProtocolServiceServer ¶
func NewProtocolServiceServer() *protocolServiceServer
func RegisterProtocolServiceServer ¶
func RegisterProtocolServiceServer(s *grpc.Server, srv ProtocolServiceServer)
Types ¶
type Encoding ¶
type Encoding byte
Encoding is the encoding used for the content string. Currently only UTF-8 or Base64 encodings are supported. You should use UTF-8 if you can and Base64 as a fallback.
func (Encoding) EnumDescriptor ¶
type NativeParseRequest ¶ added in v1.1.0
type NativeParseRequest ParseRequest
NativeParseRequest is a request to parse a file and get its native AST.
func (*NativeParseRequest) Descriptor ¶ added in v1.1.0
func (*NativeParseRequest) Descriptor() ([]byte, []int)
func (*NativeParseRequest) Marshal ¶ added in v1.1.0
func (m *NativeParseRequest) Marshal() (dAtA []byte, err error)
func (*NativeParseRequest) MarshalTo ¶ added in v1.1.0
func (m *NativeParseRequest) MarshalTo(dAtA []byte) (int, error)
func (*NativeParseRequest) ProtoMessage ¶ added in v1.1.0
func (*NativeParseRequest) ProtoMessage()
func (*NativeParseRequest) ProtoSize ¶ added in v1.1.0
func (m *NativeParseRequest) ProtoSize() (n int)
func (*NativeParseRequest) Reset ¶ added in v1.1.0
func (m *NativeParseRequest) Reset()
func (*NativeParseRequest) String ¶ added in v1.1.0
func (m *NativeParseRequest) String() string
func (*NativeParseRequest) Unmarshal ¶ added in v1.1.0
func (m *NativeParseRequest) Unmarshal(dAtA []byte) error
type NativeParseResponse ¶ added in v1.1.0
type NativeParseResponse struct {
Response
// AST contains the AST from the parsed code in json format.
AST string `json:"ast"`
}
NativeParseResponse is the reply to NativeParseRequest by the native parser.
func NativeParse ¶ added in v1.1.0
func NativeParse(req *NativeParseRequest) *NativeParseResponse
NativeParse uses DefaultService to process the given parsing request to get the AST.
func (*NativeParseResponse) Descriptor ¶ added in v1.1.0
func (*NativeParseResponse) Descriptor() ([]byte, []int)
func (*NativeParseResponse) Marshal ¶ added in v1.1.0
func (m *NativeParseResponse) Marshal() (dAtA []byte, err error)
func (*NativeParseResponse) MarshalTo ¶ added in v1.1.0
func (m *NativeParseResponse) MarshalTo(dAtA []byte) (int, error)
func (*NativeParseResponse) ProtoMessage ¶ added in v1.1.0
func (*NativeParseResponse) ProtoMessage()
func (*NativeParseResponse) ProtoSize ¶ added in v1.1.0
func (m *NativeParseResponse) ProtoSize() (n int)
func (*NativeParseResponse) Reset ¶ added in v1.1.0
func (m *NativeParseResponse) Reset()
func (*NativeParseResponse) String ¶ added in v1.1.0
func (r *NativeParseResponse) String() string
func (*NativeParseResponse) Unmarshal ¶ added in v1.1.0
func (m *NativeParseResponse) Unmarshal(dAtA []byte) error
type ParseRequest ¶
type ParseRequest struct {
// Filename is the name of the file containing the source code. Used for
// language detection. Only filename is required, path might be used but
// ignored. This is optional.
Filename string `json:"filename"`
// Language. If specified, it will override language detection. This is
// optional.
Language string `json:"language"`
// Content is the source code to be parsed.
Content string `json:"content"`
// Encoding is the encoding that the Content uses. Currently only UTF-8 and
// Base64 are supported.
Encoding Encoding `json:"encoding"`
// Timeout amount of time for wait until the request is proccessed.
Timeout time.Duration `json:"timeout"`
}
ParseRequest is a request to parse a file and get its UAST.
func (*ParseRequest) Descriptor ¶
func (*ParseRequest) Descriptor() ([]byte, []int)
func (*ParseRequest) Marshal ¶
func (m *ParseRequest) Marshal() (dAtA []byte, err error)
func (*ParseRequest) ProtoMessage ¶
func (*ParseRequest) ProtoMessage()
func (*ParseRequest) ProtoSize ¶
func (m *ParseRequest) ProtoSize() (n int)
func (*ParseRequest) Reset ¶
func (m *ParseRequest) Reset()
func (*ParseRequest) String ¶
func (m *ParseRequest) String() string
func (*ParseRequest) Unmarshal ¶
func (m *ParseRequest) Unmarshal(dAtA []byte) error
type ParseResponse ¶
type ParseResponse struct {
Response
// UAST contains the UAST from the parsed code.
UAST *uast.Node `json:"uast"`
}
ParseResponse is the reply to ParseRequest.
func Parse ¶
func Parse(req *ParseRequest) *ParseResponse
Parse uses DefaultService to process the given parsing request to get the UAST.
func (*ParseResponse) Descriptor ¶
func (*ParseResponse) Descriptor() ([]byte, []int)
func (*ParseResponse) Marshal ¶
func (m *ParseResponse) Marshal() (dAtA []byte, err error)
func (*ParseResponse) ProtoMessage ¶
func (*ParseResponse) ProtoMessage()
func (*ParseResponse) ProtoSize ¶
func (m *ParseResponse) ProtoSize() (n int)
func (*ParseResponse) Reset ¶
func (m *ParseResponse) Reset()
func (*ParseResponse) String ¶
func (r *ParseResponse) String() string
func (*ParseResponse) Unmarshal ¶
func (m *ParseResponse) Unmarshal(dAtA []byte) error
type ProtocolServiceClient ¶
type ProtocolServiceClient interface {
// NativeParse uses DefaultService to process the given parsing request to get
// the AST.
NativeParse(ctx context.Context, in *NativeParseRequest, opts ...grpc.CallOption) (*NativeParseResponse, error)
// Parse uses DefaultService to process the given parsing request to get the UAST.
Parse(ctx context.Context, in *ParseRequest, opts ...grpc.CallOption) (*ParseResponse, error)
// Version uses DefaultVersioner to process the given version request to get the version.
Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error)
}
func NewProtocolServiceClient ¶
func NewProtocolServiceClient(cc *grpc.ClientConn) ProtocolServiceClient
type ProtocolServiceServer ¶
type ProtocolServiceServer interface {
// NativeParse uses DefaultService to process the given parsing request to get
// the AST.
NativeParse(context.Context, *NativeParseRequest) (*NativeParseResponse, error)
// Parse uses DefaultService to process the given parsing request to get the UAST.
Parse(context.Context, *ParseRequest) (*ParseResponse, error)
// Version uses DefaultVersioner to process the given version request to get the version.
Version(context.Context, *VersionRequest) (*VersionResponse, error)
}
type Response ¶ added in v1.1.0
type Response struct {
// Status is the status of the parsing request.
Status Status `json:"status"`
// Status is the status of the parsing request.
Errors []string `json:"errors"`
// Elapsed is the amount of time consume processing the request.
Elapsed time.Duration `json:"elapsed"`
}
Response basic response, never used directly.
type Service ¶ added in v1.1.0
type Service interface {
Parse(*ParseRequest) *ParseResponse
NativeParse(*NativeParseRequest) *NativeParseResponse
Version(*VersionRequest) *VersionResponse
}
Service can parse code to UAST or AST.
var DefaultService Service
DefaultService is the default service used to process requests.
type VersionRequest ¶
type VersionRequest struct{}
VersionRequest is a request to get server version
func (*VersionRequest) Descriptor ¶
func (*VersionRequest) Descriptor() ([]byte, []int)
func (*VersionRequest) Marshal ¶
func (m *VersionRequest) Marshal() (dAtA []byte, err error)
func (*VersionRequest) ProtoMessage ¶
func (*VersionRequest) ProtoMessage()
func (*VersionRequest) ProtoSize ¶
func (m *VersionRequest) ProtoSize() (n int)
func (*VersionRequest) Reset ¶
func (m *VersionRequest) Reset()
func (*VersionRequest) String ¶
func (m *VersionRequest) String() string
func (*VersionRequest) Unmarshal ¶
func (m *VersionRequest) Unmarshal(dAtA []byte) error
type VersionResponse ¶
type VersionResponse struct {
Response
// Version is the server version. If is a local compilation the version
// follows the pattern dev-<short-commit>[-dirty], dirty means that was
// compile from a repository with un-committed changes.
Version string `json:"version"`
// Build contains the timestamp at the time of the build.
Build time.Time `json:"build"`
}
VersionResponse is the reply to VersionRequest
func Version ¶
func Version(req *VersionRequest) *VersionResponse
Version uses DefaultVersioner to process the given version request to get the version.
func (*VersionResponse) Descriptor ¶
func (*VersionResponse) Descriptor() ([]byte, []int)
func (*VersionResponse) Marshal ¶
func (m *VersionResponse) Marshal() (dAtA []byte, err error)
func (*VersionResponse) ProtoMessage ¶
func (*VersionResponse) ProtoMessage()
func (*VersionResponse) ProtoSize ¶
func (m *VersionResponse) ProtoSize() (n int)
func (*VersionResponse) Reset ¶
func (m *VersionResponse) Reset()
func (*VersionResponse) String ¶
func (m *VersionResponse) String() string
func (*VersionResponse) Unmarshal ¶
func (m *VersionResponse) Unmarshal(dAtA []byte) error