172 похожих чатов

Добрый вечер, есть небольшой вопрос. У меня есть модуль X

который разбит на 3 файла.

Структура модуля такая:

src
-- my_module
-- mod.rs
-- request.rs
-- server.rs

Вопрос, как мне импортировать модуль request в модуль server?
use request::Request; не работает

mod.rs выглядит так:

pub use request::Method;
pub use request::Request;
pub use status::Status;
pub use server::Server;

pub mod request;
pub mod status;
pub mod server;

11 ответов

23 просмотра

use super::request;

Rick-Sanchez Автор вопроса

Попробуй написать use crate::my_module, и дальше то что тебе нужно

Voltangle 🇨🇿🇺🇦
Попробуй написать use crate::my_module, и дальше т...

Оно начнет прямо из корня твоего крейта искать модуль

Rick-Sanchez Автор вопроса
Voltangle 🇨🇿🇺🇦
Оно начнет прямо из корня твоего крейта искать мод...

Тобишь есть два варианта. Какой обычно лучше использовать? Мешать super:: и crate:: как я предполагаю не принято

Rick Sanchez
Тобишь есть два варианта. Какой обычно лучше испол...

Лично я бы использовал с crate::, так как так просто более понятно откуда оно берет юзы

Rick Sanchez
Тобишь есть два варианта. Какой обычно лучше испол...

Принято. Зависит от того, какая логика файлов у тебя стабильнее. Если ты потом планируешь раздербанить реквест и сервер по другим папкам, то делай от crate, а если планируешь их вместе держать, но можешь потом переместить папку в которой они оба лежат в какое-то другое место, то лучше super. Если не планируешь их перемещать вообще, то бери просто что больше нравится.

Rick-Sanchez Автор вопроса
Rick Sanchez
Тобишь есть два варианта. Какой обычно лучше испол...

super к родительскому модулю обращается, причём к ним можно подряд обращаться для доступа на уровень выше. С помощью crate указывается абсолютный путь. Логика указания ровно такая же, какая в файловой системе: как удобнее, так и делай. В случае выбора между crate/super на самом верху по умолчанию импортируется префикс crate, можно его.

Rick-Sanchez Автор вопроса
Traveller Kolsky
super к родительскому модулю обращается, причём к ...

У вас на проектах нету какого то единого соглашения об импортах? например что нужно только crate:: например. Или обычно всем пофиг?

Rick Sanchez
У вас на проектах нету какого то единого соглашени...

Это никак не влияет на код или на лёгкость чтения кода, кроме каких-то дегенеративных кейсов вроде use super::super::super::super::Foo; вместо use crate::Foo;

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта