// package arch_actor -- сущность актора
package arch_actor

import (
	"gitp78su.ipnodns.ru/svi/kern/v3"

	"gitp78su.ipnodns.ru/svi/goarch/lev0/types"
	"gitp78su.ipnodns.ru/svi/goarch/lev1/arch_group_link"
	"gitp78su.ipnodns.ru/svi/goarch/lev1/arch_text"
)

// ArchActor -- сущность актора
type ArchActor struct {
	types.IArchNode
	Label_        *arch_text.ArchText            `yaml:"label"`
	UseGroupLink_ *arch_group_link.ArchGroupLink `yaml:"use_group_link"`
}

var (
	hassert = kern.GetFnHassert()
)

// NewActor -- возвращает новый актор
func NewActor(label *arch_text.ArchText, useGroupLink *arch_group_link.ArchGroupLink) *ArchActor {
	hassert(label != nil, "NewActor(): label==nil")
	hassert(useGroupLink != nil, "NewActor(): useGroupLink==nil")
	sf := &ArchActor{
		UseGroupLink_: useGroupLink,
		Label_:        label,
	}
	return sf
}
