большой файл на несколько? Так в файле объявлена struct A и есть несколько объемных impl для A. Чтобы их вынести в отдельные файлы, насколько я понимаю, есть два основных пути:
- сделать из этого файла модуль (т.е. добавить новую вложенную папку) и поместить объявление struct A в mod.rs
- сделать часть полей A, используемых в impl, pub(crate)
Каким путем пошли бы вы?
есть ещё (не утверждаю, что хорошая идея, но для полноты нельзя не упомянуть) https://doc.rust-lang.org/std/macro.include.html
А вообще стоит разделить структуру на несколько если она слишком большая для одного файла
Я бы разбил на модули. - a.rs - a/ - implx - imply a.rs: mod implx; mod imply
Я обычно стараюсь объявление и все его имплы держать в одном модуле. Если получается слишком громоздко, то часто можно какие-то вспомогательные абстракции и функции вынести из самих имплов.
1. Можно не перемещать в mod.rs, достаточно создать папку по имени оригинального файла и в ней насоздавать нужные подмодули
Обсуждают сегодня