type CompactOp … type CompactOption … func (op *CompactOp) applyCompactOpts(opts []CompactOption) { … } // OpCompact wraps slice CompactOption to create a CompactOp. func OpCompact(rev int64, opts ...CompactOption) CompactOp { … } func (op CompactOp) toRequest() *pb.CompactionRequest { … } // WithCompactPhysical makes Compact wait until all compacted entries are // removed from the etcd server's storage. func WithCompactPhysical() CompactOption { … }