LogicStructure constructor

LogicStructure(
  1. Iterable<Logic> elements,
  2. {String? name}
)

Creates a new LogicStructure with elements as elements.

None of the elements can already be members of another LogicStructure.

Implementation

LogicStructure(Iterable<Logic> elements, {String? name})
    : name = Naming.chooseName(name, null, nullStarter: 'st') {
  _elements
    ..addAll(elements)
    ..forEach((element) {
      if (element.parentStructure != null) {
        throw LogicConstructionException(
            '$element already is a member of a structure'
            ' ${element.parentStructure}.');
      }

      element._parentStructure = this;
    });
}