// package benchmark provides simple tools to measure the performance of the
// IPC system.
package benchmark

import (
	"v.io/core/veyron2/services/security/access"
)

type Benchmark interface {
  // Echo returns the payload that it receives.
  Echo(Payload []byte) ([]byte | error) {access.Read}
  // EchoStream returns the payload that it receives via the stream.
  EchoStream() stream<[]byte,[]byte> error {access.Read}
}
