gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/grpc/codec.go (about)

     1  /*
     2   *
     3   * Copyright 2014 gRPC authors.
     4   *
     5   * Licensed under the Apache License, Version 2.0 (the "License");
     6   * you may not use this file except in compliance with the License.
     7   * You may obtain a copy of the License at
     8   *
     9   *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   *
    17   */
    18  
    19  package grpc
    20  
    21  import (
    22  	"gitee.com/ks-custle/core-gm/grpc/encoding"
    23  	_ "gitee.com/ks-custle/core-gm/grpc/encoding/proto" // to register the Codec for "proto"
    24  )
    25  
    26  // baseCodec contains the functionality of both Codec and encoding.Codec, but
    27  // omits the name/string, which vary between the two and are not needed for
    28  // anything besides the registry in the encoding package.
    29  type baseCodec interface {
    30  	Marshal(v interface{}) ([]byte, error)
    31  	Unmarshal(data []byte, v interface{}) error
    32  }
    33  
    34  var _ baseCodec = Codec(nil)
    35  var _ baseCodec = encoding.Codec(nil)
    36  
    37  // Codec defines the interface gRPC uses to encode and decode messages.
    38  // Note that implementations of this interface must be thread safe;
    39  // a Codec's methods can be called from concurrent goroutines.
    40  //
    41  // Deprecated: use encoding.Codec instead.
    42  type Codec interface {
    43  	// Marshal returns the wire format of v.
    44  	Marshal(v interface{}) ([]byte, error)
    45  	// Unmarshal parses the wire format into v.
    46  	Unmarshal(data []byte, v interface{}) error
    47  	// String returns the name of the Codec implementation.  This is unused by
    48  	// gRPC.
    49  	String() string
    50  }