package writer

import (
	"context"

	"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/object"
	objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
	"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/transformer"
)

var _ transformer.ObjectWriter = (*objectWriterDispatcher)(nil)

type objectWriterDispatcher struct {
	ecWriter  transformer.ObjectWriter
	repWriter transformer.ObjectWriter
}

func (m *objectWriterDispatcher) WriteObject(ctx context.Context, obj *objectSDK.Object) error {
	if object.IsECSupported(obj) {
		return m.ecWriter.WriteObject(ctx, obj)
	}
	return m.repWriter.WriteObject(ctx, obj)
}