// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc             v4.25.1
// source: queue.proto

package proto

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// 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.32.0 or later.
const _ = grpc.SupportPackageIsVersion7

const (
	SimpleQueueService_SimpleQueuePut_FullMethodName   = "/simplequeue.SimpleQueueService/SimpleQueuePut"
	SimpleQueueService_SimpleQueuePop_FullMethodName   = "/simplequeue.SimpleQueueService/SimpleQueuePop"
	SimpleQueueService_SimpleQueuePeek_FullMethodName  = "/simplequeue.SimpleQueueService/SimpleQueuePeek"
	SimpleQueueService_SimpleQueueEmpty_FullMethodName = "/simplequeue.SimpleQueueService/SimpleQueueEmpty"
	SimpleQueueService_SimpleQueueSize_FullMethodName  = "/simplequeue.SimpleQueueService/SimpleQueueSize"
)

// SimpleQueueServiceClient is the client API for SimpleQueueService 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 SimpleQueueServiceClient interface {
	SimpleQueuePut(ctx context.Context, in *SimpleQueuePutRequest, opts ...grpc.CallOption) (*SimpleQueuePutResponse, error)
	SimpleQueuePop(ctx context.Context, in *SimpleQueuePopRequest, opts ...grpc.CallOption) (*SimpleQueuePopResponse, error)
	SimpleQueuePeek(ctx context.Context, in *SimpleQueueRequest, opts ...grpc.CallOption) (*SimpleQueuePeekResponse, error)
	SimpleQueueEmpty(ctx context.Context, in *SimpleQueueRequest, opts ...grpc.CallOption) (*SimpleQueueEmptyResponse, error)
	SimpleQueueSize(ctx context.Context, in *SimpleQueueRequest, opts ...grpc.CallOption) (*SimpleQueueSizeResponse, error)
}

type simpleQueueServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewSimpleQueueServiceClient(cc grpc.ClientConnInterface) SimpleQueueServiceClient {
	return &simpleQueueServiceClient{cc}
}

func (c *simpleQueueServiceClient) SimpleQueuePut(ctx context.Context, in *SimpleQueuePutRequest, opts ...grpc.CallOption) (*SimpleQueuePutResponse, error) {
	out := new(SimpleQueuePutResponse)
	err := c.cc.Invoke(ctx, SimpleQueueService_SimpleQueuePut_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *simpleQueueServiceClient) SimpleQueuePop(ctx context.Context, in *SimpleQueuePopRequest, opts ...grpc.CallOption) (*SimpleQueuePopResponse, error) {
	out := new(SimpleQueuePopResponse)
	err := c.cc.Invoke(ctx, SimpleQueueService_SimpleQueuePop_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *simpleQueueServiceClient) SimpleQueuePeek(ctx context.Context, in *SimpleQueueRequest, opts ...grpc.CallOption) (*SimpleQueuePeekResponse, error) {
	out := new(SimpleQueuePeekResponse)
	err := c.cc.Invoke(ctx, SimpleQueueService_SimpleQueuePeek_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *simpleQueueServiceClient) SimpleQueueEmpty(ctx context.Context, in *SimpleQueueRequest, opts ...grpc.CallOption) (*SimpleQueueEmptyResponse, error) {
	out := new(SimpleQueueEmptyResponse)
	err := c.cc.Invoke(ctx, SimpleQueueService_SimpleQueueEmpty_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *simpleQueueServiceClient) SimpleQueueSize(ctx context.Context, in *SimpleQueueRequest, opts ...grpc.CallOption) (*SimpleQueueSizeResponse, error) {
	out := new(SimpleQueueSizeResponse)
	err := c.cc.Invoke(ctx, SimpleQueueService_SimpleQueueSize_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// SimpleQueueServiceServer is the server API for SimpleQueueService service.
// All implementations must embed UnimplementedSimpleQueueServiceServer
// for forward compatibility
type SimpleQueueServiceServer interface {
	SimpleQueuePut(context.Context, *SimpleQueuePutRequest) (*SimpleQueuePutResponse, error)
	SimpleQueuePop(context.Context, *SimpleQueuePopRequest) (*SimpleQueuePopResponse, error)
	SimpleQueuePeek(context.Context, *SimpleQueueRequest) (*SimpleQueuePeekResponse, error)
	SimpleQueueEmpty(context.Context, *SimpleQueueRequest) (*SimpleQueueEmptyResponse, error)
	SimpleQueueSize(context.Context, *SimpleQueueRequest) (*SimpleQueueSizeResponse, error)
	mustEmbedUnimplementedSimpleQueueServiceServer()
}

// UnimplementedSimpleQueueServiceServer must be embedded to have forward compatible implementations.
type UnimplementedSimpleQueueServiceServer struct {
}

func (UnimplementedSimpleQueueServiceServer) SimpleQueuePut(context.Context, *SimpleQueuePutRequest) (*SimpleQueuePutResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SimpleQueuePut not implemented")
}
func (UnimplementedSimpleQueueServiceServer) SimpleQueuePop(context.Context, *SimpleQueuePopRequest) (*SimpleQueuePopResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SimpleQueuePop not implemented")
}
func (UnimplementedSimpleQueueServiceServer) SimpleQueuePeek(context.Context, *SimpleQueueRequest) (*SimpleQueuePeekResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SimpleQueuePeek not implemented")
}
func (UnimplementedSimpleQueueServiceServer) SimpleQueueEmpty(context.Context, *SimpleQueueRequest) (*SimpleQueueEmptyResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SimpleQueueEmpty not implemented")
}
func (UnimplementedSimpleQueueServiceServer) SimpleQueueSize(context.Context, *SimpleQueueRequest) (*SimpleQueueSizeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SimpleQueueSize not implemented")
}
func (UnimplementedSimpleQueueServiceServer) mustEmbedUnimplementedSimpleQueueServiceServer() {}

// UnsafeSimpleQueueServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to SimpleQueueServiceServer will
// result in compilation errors.
type UnsafeSimpleQueueServiceServer interface {
	mustEmbedUnimplementedSimpleQueueServiceServer()
}

func RegisterSimpleQueueServiceServer(s grpc.ServiceRegistrar, srv SimpleQueueServiceServer) {
	s.RegisterService(&SimpleQueueService_ServiceDesc, srv)
}

func _SimpleQueueService_SimpleQueuePut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SimpleQueuePutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SimpleQueueServiceServer).SimpleQueuePut(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: SimpleQueueService_SimpleQueuePut_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SimpleQueueServiceServer).SimpleQueuePut(ctx, req.(*SimpleQueuePutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _SimpleQueueService_SimpleQueuePop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SimpleQueuePopRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SimpleQueueServiceServer).SimpleQueuePop(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: SimpleQueueService_SimpleQueuePop_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SimpleQueueServiceServer).SimpleQueuePop(ctx, req.(*SimpleQueuePopRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _SimpleQueueService_SimpleQueuePeek_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SimpleQueueRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SimpleQueueServiceServer).SimpleQueuePeek(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: SimpleQueueService_SimpleQueuePeek_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SimpleQueueServiceServer).SimpleQueuePeek(ctx, req.(*SimpleQueueRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _SimpleQueueService_SimpleQueueEmpty_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SimpleQueueRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SimpleQueueServiceServer).SimpleQueueEmpty(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: SimpleQueueService_SimpleQueueEmpty_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SimpleQueueServiceServer).SimpleQueueEmpty(ctx, req.(*SimpleQueueRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _SimpleQueueService_SimpleQueueSize_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SimpleQueueRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(SimpleQueueServiceServer).SimpleQueueSize(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: SimpleQueueService_SimpleQueueSize_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(SimpleQueueServiceServer).SimpleQueueSize(ctx, req.(*SimpleQueueRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// SimpleQueueService_ServiceDesc is the grpc.ServiceDesc for SimpleQueueService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var SimpleQueueService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "simplequeue.SimpleQueueService",
	HandlerType: (*SimpleQueueServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SimpleQueuePut",
			Handler:    _SimpleQueueService_SimpleQueuePut_Handler,
		},
		{
			MethodName: "SimpleQueuePop",
			Handler:    _SimpleQueueService_SimpleQueuePop_Handler,
		},
		{
			MethodName: "SimpleQueuePeek",
			Handler:    _SimpleQueueService_SimpleQueuePeek_Handler,
		},
		{
			MethodName: "SimpleQueueEmpty",
			Handler:    _SimpleQueueService_SimpleQueueEmpty_Handler,
		},
		{
			MethodName: "SimpleQueueSize",
			Handler:    _SimpleQueueService_SimpleQueueSize_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "queue.proto",
}
