当前位置: 首页 > article >正文

Rust unresolved import `crate::xxx` 报错解决

问题阐述

该问题出现在我使用actix编写的crud后端api中,我的后端结构如下:

D:.
|   handle_err.rs
|   lib.rs
|   main.rs
|
+---application
|       mod.rs
|       user_service.rs
|
+---domain
|       dto.rs
|       mod.rs
|       user.rs
|
+---infrastructure
|       mod.rs
|       repository.rs
|
\---interface
        mod.rs
        user_controller.rs

我希望在 `user_service.rs` 和 `repository.rs` 中使用我的自定义error结构体对象,我在 `application`目录下和 `infrastructure` 目录下的 mod.rs 中都已经导出了对应 .rs 文件:

pub mod repository;
pub mod user_service;

并且在lib.rs目录下也已经导出了对应包: 

pub mod infrastructure;
pub mod domain;
pub mod application;
pub mod handle_err;

但是在 `repository.rs` 文件中的引入

use crate::handle_err::ServiceError;

却报错:

unresolved import `crate::handle_err`
unresolved importrustcClick for full compiler diagnostic

解决方案

在 main.rs 中 mod base即可,即在man.rs 中添加 mod handle_err;

use actix_web::{web, App, HttpServer};
use dotenv::dotenv;
use mysql::Pool;
use std::env;
use std::sync::Arc;

mod domain;
mod application;
mod infrastructure;
mod interface;
mod handle_err;

use application::user_service::UserService;
use infrastructure::repository::UserRepository;
use interface::user_controller::configuration;

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    dotenv().ok();
    let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set");
    let pool = Pool::new(database_url).expect("Failed to create database pool");

    let user_repository = UserRepository::new(pool);
    let user_service = Arc::new(UserService::new(user_repository));

    HttpServer::new(move || {
        App::new()
            .app_data(web::Data::from(user_service.clone()))
            .configure(configuration) // 调用配置函数注册路由
    })
    .bind(("127.0.0.1", 8081))?
    .run()
    .await
}

参考资料

Rust 使用 use::create:: 不能引用顶级目录的模块?? - Rust语言中文社区


http://www.kler.cn/a/536102.html

相关文章:

  • Rust unresolved import `crate::xxx` 报错解决
  • 人人皆可创建自己的AI应用:DigitalOcean GenAI平台正式上线
  • .net8.0使用EF连接sqlite数据库及使用Gridify实现查询的简易实现
  • ZK-ALU-在有限域上实现左移
  • app专项测试(网络测试流程)
  • 在 Mac M2 上安装 PyTorch 并启用 MPS 加速的详细教程与性能对比
  • C++11—可变参数模板
  • 【CS61A 2024秋】Python入门课,全过程记录P6(Week12 Interpreters开始,更新于2025/2/7)
  • 【HarmonyOS NEXT】设备显示白屏 syswarning happended in XXX
  • C++ 类和对象 详细版(上)
  • PT2021K 单触控同步输出 IC
  • Python爬虫-如何正确解决起点中文网的无限debugger
  • CF 278A.Circle Line
  • Python中__init__.py文件的作用
  • GitPuk快速安装配置教程(入门级)
  • c# Lazy<T>单例模式 - 延迟初始化单例实例示例与详解
  • Android GPS功耗优化思考点
  • 【Leetcode 热题 100】136. 只出现一次的数字
  • ControlNet 风格迁移介绍
  • 【R语言】apply函数族
  • mysql优化-升级8.0服务启动失败
  • 250207-MacOS修改Ollama模型下载及运行的路径
  • python编程-内置函数 bytes() , bytearray()详解
  • 微服务架构中的事件驱动设计:使用 Kafka 和 Apache Pulsar 实现高效的事件流管理
  • 【k8s集群应用】kubectl命令行工具管理-陈述式管理
  • 在线免费 HTML 预览工具