using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProjectElectricLocomotive.CollectionGenericObjects;
///
/// Интерфейс описания действий для набора хранимых объектов
///
/// Параметр: ограничение - ссылочный тип
public interface ICollectionGenericObjects
where T : class
{
///
/// Количество объектов в коллекции
///
int Count { get; }
///
/// Установка максимального количества элементов
///
int SetMaxCount { set; }
///
/// Добавление объекта в коллекцию
///
/// Добавляемый объект
/// true - вставка прошла удачно, false - вставка не удалась
bool Insert(T obj);
///
/// Добавление объекта в коллекцию на конкретную позицию
///
/// Добавляемый объект
/// Позиция
/// true - вставка прошла удачно, false - вставка не удалась
bool Insert(T obj, int position);
///
/// Удаление объекта из коллекции с конкретной позиции
///
/// Позиция
/// true - удаление прошло удачно, false - удаление не удалось
bool Remove(int position);
///
/// Получение объекта по позиции
///
/// Позиция
/// Объект
T? Get(int position);
}