type Checkpoint … type CheckpointManager … type impl … // NewCheckpointManager returns a new instance of a checkpoint manager func NewCheckpointManager(checkpointDir string) (CheckpointManager, error) { … } // CreateCheckpoint persists checkpoint in CheckpointStore. func (manager *impl) CreateCheckpoint(checkpointKey string, checkpoint Checkpoint) error { … } // GetCheckpoint retrieves checkpoint from CheckpointStore. func (manager *impl) GetCheckpoint(checkpointKey string, checkpoint Checkpoint) error { … } // RemoveCheckpoint will not return error if checkpoint does not exist. func (manager *impl) RemoveCheckpoint(checkpointKey string) error { … } // ListCheckpoints returns the list of existing checkpoints. func (manager *impl) ListCheckpoints() ([]string, error) { … }