Нужно сделать один проект, состоящий из пакета библиотеки и пакета бинаря (не example).
Библиотека должна позволять создавать, изменять, обходить и сериализовать графы.
Требования к библиотеке:
- Добавление и удаление вершин
- Добавление и удаление ориентированных ребер
- Обход вершин графа в ширину (или любой другой алгоритм)
- Сериализация/десериализация графа в Trivial Graph Format
- Тип значения графа должен быть обобщенным (generic)
- Нельзя использовать готовые графовые библиотеки
- Тесты в библиотеке будут плюсом.
Бинарь, используя эту библиотеку, должен десериализовать граф из файла, обойти его вершины и для каждой из них вывести в консоль её идентификатор, идентификаторы смежных ей вершин и её значение.
При выполнении задания использовать основные идиомы и утилиты языка Rust.