package common

import (
	"context"

	oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
)

type RebuildRes struct {
	ObjectsMoved uint64
	FilesRemoved uint64
}

type RebuildPrm struct {
	MetaStorage   MetaStorage
	WorkerLimiter ConcurrentWorkersLimiter
	FillPercent   int
}

type MetaStorage interface {
	UpdateStorageID(ctx context.Context, addr oid.Address, storageID []byte) error
}

type ConcurrentWorkersLimiter interface {
	AcquireWorkSlot(ctx context.Context) error
	ReleaseWorkSlot()
}