package messaging

import (
	mb "github.com/tech/sendico/pkg/messaging/broker"
	"github.com/tech/sendico/pkg/messaging/internal/inprocess"
	ipc "github.com/tech/sendico/pkg/messaging/internal/inprocess/config"
	"github.com/tech/sendico/pkg/mlogger"
	"github.com/tech/sendico/pkg/model"
	"github.com/mitchellh/mapstructure"
)

func NewInProcessBroker(logger mlogger.Logger, config model.SettingsT) (mb.Broker, error) {
	var conf ipc.MessagingConfig
	if err := mapstructure.Decode(config, &conf); err != nil {
		return nil, err
	}
	return inprocess.NewInProcessBroker(logger, conf.BufferSize)
}
