Я изучаю ржавчину и очень запутался в структуре проекта для автомобилей go проектов. Я использую эту страницу (и книгу ржавчины) для справки.
Я пытаюсь разделить свой проект на разные структуры, чтобы они могли иметь свой собственный файл, похожий на cpp и классы.
поэтому, если у меня есть
src/main.rs
src/struct_name.rs
и я создаю для него мод:
pub mod struct_name
{
pub struct _struct_name
{}
}
, я смогу сделать это в main.rs:
mod struct_name;
Но проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь включить внешние ящики. Например, я пытаюсь реализовать хлопок и использовать макросы. Итак, в igloo.rs я делаю следующее :
#[macro_use]
extern crate clap;
use clap::{Arg, App};
pub mod struct_name
{
pub struct _struct_name
{//do clap things}
}
Мне выдается ошибка E0468 «макросы загрузки внешнего ящика должны находиться в ящике root». Означает ли это, что я никогда не смогу использовать макросы вне main.rs или lib.rs? Как я могу как-то экспортировать эти функции, чтобы использовать их в struct_name.rs? Я понимаю, что могу выполнять функции экспорта в main.rs или lib.rs, но если я использую мод в main.rs и lib.rs, то struct_name.rs никогда не увидит экспортируемые функции, верно?