Embedding, фабрика и упорядоченный асинхронный генератор
Выполнить комплексное задание на Go: 1) сделать структуры Core и Derived; 2) Core должна содержать строковое поле label; 3) Derived должна содержать строковое поле suffix; 4) сделать метод Greet у Core, который печатает "Hello, %label!"; 5) унаследовать (через embedding) Derived от Core; 6) создать экземпляр base1 Core, присвоить label значение "Root"; 7) создать экземпляр child1 Derived, присвоить label значение "Leaf", suffix значение "Extended"; 8) вызвать метод Greet у обоих экземпляров; 9) переопределить метод Greet для Derived, чтобы он выводил "Hello, %suffix %label!"; 10) сделать массив, содержащий base1 и child1; 11) вызвать Greet у всех элементов этого массива; 12) сделать метод Build для создания экземпляров Core и Derived в зависимости от входного параметра; 13) написать юнит-тесты для метода Build; 14) сделать генератор объектов Core и Derived так, чтобы объекты Core создавались в фоновом потоке с задержкой 1 секунда, объекты Derived — с задержкой 2 секунды, а общее время генерации объектов не превышало 11 секунд; 15) сделать асинхронный обработчик сгенерированных объектов так, чтобы метод Greet вызывался в порядке генерации объектов и это не приводило к утечкам памяти.