tailly_clips/proto/clip_grpc.pb.go
2025-09-09 19:33:10 +03:00

541 lines
22 KiB
Go

// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.5.1
// - protoc v3.21.12
// source: clip.proto
package proto
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
emptypb "google.golang.org/protobuf/types/known/emptypb"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.64.0 or later.
const _ = grpc.SupportPackageIsVersion9
const (
ClipService_CreateClip_FullMethodName = "/proto.ClipService/CreateClip"
ClipService_GetClip_FullMethodName = "/proto.ClipService/GetClip"
ClipService_GetUserClips_FullMethodName = "/proto.ClipService/GetUserClips"
ClipService_GetClips_FullMethodName = "/proto.ClipService/GetClips"
ClipService_DeleteClip_FullMethodName = "/proto.ClipService/DeleteClip"
ClipService_LikeClip_FullMethodName = "/proto.ClipService/LikeClip"
ClipService_UnlikeClip_FullMethodName = "/proto.ClipService/UnlikeClip"
ClipService_GetClipLikes_FullMethodName = "/proto.ClipService/GetClipLikes"
ClipService_CheckIfLiked_FullMethodName = "/proto.ClipService/CheckIfLiked"
ClipService_CreateComment_FullMethodName = "/proto.ClipService/CreateComment"
ClipService_GetClipComments_FullMethodName = "/proto.ClipService/GetClipComments"
ClipService_DeleteComment_FullMethodName = "/proto.ClipService/DeleteComment"
)
// ClipServiceClient is the client API for ClipService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type ClipServiceClient interface {
// Клипы
CreateClip(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[CreateClipRequest, CreateClipResponse], error)
GetClip(ctx context.Context, in *GetClipRequest, opts ...grpc.CallOption) (*GetClipResponse, error)
GetUserClips(ctx context.Context, in *GetUserClipsRequest, opts ...grpc.CallOption) (*GetUserClipsResponse, error)
GetClips(ctx context.Context, in *GetClipsRequest, opts ...grpc.CallOption) (*GetClipsResponse, error)
DeleteClip(ctx context.Context, in *DeleteClipRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Лайки
LikeClip(ctx context.Context, in *LikeClipRequest, opts ...grpc.CallOption) (*LikeClipResponse, error)
UnlikeClip(ctx context.Context, in *UnlikeClipRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
GetClipLikes(ctx context.Context, in *GetClipLikesRequest, opts ...grpc.CallOption) (*GetClipLikesResponse, error)
CheckIfLiked(ctx context.Context, in *CheckIfLikedRequest, opts ...grpc.CallOption) (*CheckIfLikedResponse, error)
// Комментарии
CreateComment(ctx context.Context, in *CreateCommentRequest, opts ...grpc.CallOption) (*CreateCommentResponse, error)
GetClipComments(ctx context.Context, in *GetClipCommentsRequest, opts ...grpc.CallOption) (*GetClipCommentsResponse, error)
DeleteComment(ctx context.Context, in *DeleteCommentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}
type clipServiceClient struct {
cc grpc.ClientConnInterface
}
func NewClipServiceClient(cc grpc.ClientConnInterface) ClipServiceClient {
return &clipServiceClient{cc}
}
func (c *clipServiceClient) CreateClip(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[CreateClipRequest, CreateClipResponse], error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
stream, err := c.cc.NewStream(ctx, &ClipService_ServiceDesc.Streams[0], ClipService_CreateClip_FullMethodName, cOpts...)
if err != nil {
return nil, err
}
x := &grpc.GenericClientStream[CreateClipRequest, CreateClipResponse]{ClientStream: stream}
return x, nil
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ClipService_CreateClipClient = grpc.ClientStreamingClient[CreateClipRequest, CreateClipResponse]
func (c *clipServiceClient) GetClip(ctx context.Context, in *GetClipRequest, opts ...grpc.CallOption) (*GetClipResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetClipResponse)
err := c.cc.Invoke(ctx, ClipService_GetClip_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) GetUserClips(ctx context.Context, in *GetUserClipsRequest, opts ...grpc.CallOption) (*GetUserClipsResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetUserClipsResponse)
err := c.cc.Invoke(ctx, ClipService_GetUserClips_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) GetClips(ctx context.Context, in *GetClipsRequest, opts ...grpc.CallOption) (*GetClipsResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetClipsResponse)
err := c.cc.Invoke(ctx, ClipService_GetClips_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) DeleteClip(ctx context.Context, in *DeleteClipRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, ClipService_DeleteClip_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) LikeClip(ctx context.Context, in *LikeClipRequest, opts ...grpc.CallOption) (*LikeClipResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(LikeClipResponse)
err := c.cc.Invoke(ctx, ClipService_LikeClip_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) UnlikeClip(ctx context.Context, in *UnlikeClipRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, ClipService_UnlikeClip_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) GetClipLikes(ctx context.Context, in *GetClipLikesRequest, opts ...grpc.CallOption) (*GetClipLikesResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetClipLikesResponse)
err := c.cc.Invoke(ctx, ClipService_GetClipLikes_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) CheckIfLiked(ctx context.Context, in *CheckIfLikedRequest, opts ...grpc.CallOption) (*CheckIfLikedResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(CheckIfLikedResponse)
err := c.cc.Invoke(ctx, ClipService_CheckIfLiked_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) CreateComment(ctx context.Context, in *CreateCommentRequest, opts ...grpc.CallOption) (*CreateCommentResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(CreateCommentResponse)
err := c.cc.Invoke(ctx, ClipService_CreateComment_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) GetClipComments(ctx context.Context, in *GetClipCommentsRequest, opts ...grpc.CallOption) (*GetClipCommentsResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetClipCommentsResponse)
err := c.cc.Invoke(ctx, ClipService_GetClipComments_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clipServiceClient) DeleteComment(ctx context.Context, in *DeleteCommentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, ClipService_DeleteComment_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
// ClipServiceServer is the server API for ClipService service.
// All implementations must embed UnimplementedClipServiceServer
// for forward compatibility.
type ClipServiceServer interface {
// Клипы
CreateClip(grpc.ClientStreamingServer[CreateClipRequest, CreateClipResponse]) error
GetClip(context.Context, *GetClipRequest) (*GetClipResponse, error)
GetUserClips(context.Context, *GetUserClipsRequest) (*GetUserClipsResponse, error)
GetClips(context.Context, *GetClipsRequest) (*GetClipsResponse, error)
DeleteClip(context.Context, *DeleteClipRequest) (*emptypb.Empty, error)
// Лайки
LikeClip(context.Context, *LikeClipRequest) (*LikeClipResponse, error)
UnlikeClip(context.Context, *UnlikeClipRequest) (*emptypb.Empty, error)
GetClipLikes(context.Context, *GetClipLikesRequest) (*GetClipLikesResponse, error)
CheckIfLiked(context.Context, *CheckIfLikedRequest) (*CheckIfLikedResponse, error)
// Комментарии
CreateComment(context.Context, *CreateCommentRequest) (*CreateCommentResponse, error)
GetClipComments(context.Context, *GetClipCommentsRequest) (*GetClipCommentsResponse, error)
DeleteComment(context.Context, *DeleteCommentRequest) (*emptypb.Empty, error)
mustEmbedUnimplementedClipServiceServer()
}
// UnimplementedClipServiceServer must be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedClipServiceServer struct{}
func (UnimplementedClipServiceServer) CreateClip(grpc.ClientStreamingServer[CreateClipRequest, CreateClipResponse]) error {
return status.Errorf(codes.Unimplemented, "method CreateClip not implemented")
}
func (UnimplementedClipServiceServer) GetClip(context.Context, *GetClipRequest) (*GetClipResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetClip not implemented")
}
func (UnimplementedClipServiceServer) GetUserClips(context.Context, *GetUserClipsRequest) (*GetUserClipsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetUserClips not implemented")
}
func (UnimplementedClipServiceServer) GetClips(context.Context, *GetClipsRequest) (*GetClipsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetClips not implemented")
}
func (UnimplementedClipServiceServer) DeleteClip(context.Context, *DeleteClipRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteClip not implemented")
}
func (UnimplementedClipServiceServer) LikeClip(context.Context, *LikeClipRequest) (*LikeClipResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method LikeClip not implemented")
}
func (UnimplementedClipServiceServer) UnlikeClip(context.Context, *UnlikeClipRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method UnlikeClip not implemented")
}
func (UnimplementedClipServiceServer) GetClipLikes(context.Context, *GetClipLikesRequest) (*GetClipLikesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetClipLikes not implemented")
}
func (UnimplementedClipServiceServer) CheckIfLiked(context.Context, *CheckIfLikedRequest) (*CheckIfLikedResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CheckIfLiked not implemented")
}
func (UnimplementedClipServiceServer) CreateComment(context.Context, *CreateCommentRequest) (*CreateCommentResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateComment not implemented")
}
func (UnimplementedClipServiceServer) GetClipComments(context.Context, *GetClipCommentsRequest) (*GetClipCommentsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetClipComments not implemented")
}
func (UnimplementedClipServiceServer) DeleteComment(context.Context, *DeleteCommentRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteComment not implemented")
}
func (UnimplementedClipServiceServer) mustEmbedUnimplementedClipServiceServer() {}
func (UnimplementedClipServiceServer) testEmbeddedByValue() {}
// UnsafeClipServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to ClipServiceServer will
// result in compilation errors.
type UnsafeClipServiceServer interface {
mustEmbedUnimplementedClipServiceServer()
}
func RegisterClipServiceServer(s grpc.ServiceRegistrar, srv ClipServiceServer) {
// If the following call pancis, it indicates UnimplementedClipServiceServer was
// embedded by pointer and is nil. This will cause panics if an
// unimplemented method is ever invoked, so we test this at initialization
// time to prevent it from happening at runtime later due to I/O.
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
t.testEmbeddedByValue()
}
s.RegisterService(&ClipService_ServiceDesc, srv)
}
func _ClipService_CreateClip_Handler(srv interface{}, stream grpc.ServerStream) error {
return srv.(ClipServiceServer).CreateClip(&grpc.GenericServerStream[CreateClipRequest, CreateClipResponse]{ServerStream: stream})
}
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type ClipService_CreateClipServer = grpc.ClientStreamingServer[CreateClipRequest, CreateClipResponse]
func _ClipService_GetClip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetClipRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).GetClip(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_GetClip_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).GetClip(ctx, req.(*GetClipRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_GetUserClips_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetUserClipsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).GetUserClips(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_GetUserClips_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).GetUserClips(ctx, req.(*GetUserClipsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_GetClips_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetClipsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).GetClips(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_GetClips_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).GetClips(ctx, req.(*GetClipsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_DeleteClip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteClipRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).DeleteClip(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_DeleteClip_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).DeleteClip(ctx, req.(*DeleteClipRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_LikeClip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(LikeClipRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).LikeClip(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_LikeClip_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).LikeClip(ctx, req.(*LikeClipRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_UnlikeClip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UnlikeClipRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).UnlikeClip(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_UnlikeClip_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).UnlikeClip(ctx, req.(*UnlikeClipRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_GetClipLikes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetClipLikesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).GetClipLikes(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_GetClipLikes_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).GetClipLikes(ctx, req.(*GetClipLikesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_CheckIfLiked_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CheckIfLikedRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).CheckIfLiked(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_CheckIfLiked_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).CheckIfLiked(ctx, req.(*CheckIfLikedRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_CreateComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateCommentRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).CreateComment(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_CreateComment_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).CreateComment(ctx, req.(*CreateCommentRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_GetClipComments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetClipCommentsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).GetClipComments(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_GetClipComments_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).GetClipComments(ctx, req.(*GetClipCommentsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _ClipService_DeleteComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteCommentRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClipServiceServer).DeleteComment(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: ClipService_DeleteComment_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClipServiceServer).DeleteComment(ctx, req.(*DeleteCommentRequest))
}
return interceptor(ctx, in, info, handler)
}
// ClipService_ServiceDesc is the grpc.ServiceDesc for ClipService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var ClipService_ServiceDesc = grpc.ServiceDesc{
ServiceName: "proto.ClipService",
HandlerType: (*ClipServiceServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "GetClip",
Handler: _ClipService_GetClip_Handler,
},
{
MethodName: "GetUserClips",
Handler: _ClipService_GetUserClips_Handler,
},
{
MethodName: "GetClips",
Handler: _ClipService_GetClips_Handler,
},
{
MethodName: "DeleteClip",
Handler: _ClipService_DeleteClip_Handler,
},
{
MethodName: "LikeClip",
Handler: _ClipService_LikeClip_Handler,
},
{
MethodName: "UnlikeClip",
Handler: _ClipService_UnlikeClip_Handler,
},
{
MethodName: "GetClipLikes",
Handler: _ClipService_GetClipLikes_Handler,
},
{
MethodName: "CheckIfLiked",
Handler: _ClipService_CheckIfLiked_Handler,
},
{
MethodName: "CreateComment",
Handler: _ClipService_CreateComment_Handler,
},
{
MethodName: "GetClipComments",
Handler: _ClipService_GetClipComments_Handler,
},
{
MethodName: "DeleteComment",
Handler: _ClipService_DeleteComment_Handler,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "CreateClip",
Handler: _ClipService_CreateClip_Handler,
ClientStreams: true,
},
},
Metadata: "clip.proto",
}