def unmarshal_proc(target)
      fail ArgumentError unless [:input, :output].include?(target)
      unmarshal_class = send(target)
      unmarshal_class = unmarshal_class.type if unmarshal_class.is_a? Stream
      proc { |o| unmarshal_class.send(unmarshal_method, o) }
    end
def unmarshal_proc(target)
      fail ArgumentError unless [:input, :output].include?(target)
      unmarshal_class = send(target)
      unmarshal_class = unmarshal_class.type if unmarshal_class.is_a? Stream
      proc { |o| unmarshal_class.send(unmarshal_method, o) }
    end
@param [:input, :output] target determines whether to produce the an
                          unmarshal Proc for the rpc input parameter or
                          its output parameter

 @return [Proc] An unmarshal proc { |marshalled(instance)| instance }