code: func NewClientWithCodec(codec ClientCodec) *Client {
  	client := &Client{
  		codec:   codec,
  		pending: make(map[uint64]*Call),
  	}
  	go client.input()
  	return client
  }
docs: // NewClientWithCodec is like NewClient but uses the specified
  // codec to encode requests and decode responses.