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

Rust项目结构

文章目录

  • 一、module模块
    • 1.文件内的module
  • 二、模块化项目结构
    • 1.关于module
    • 2.各个模块之间互相引用
  • 三、推荐项目结构
    • 1.实例
  • 参考

一、module模块

在这里插入图片描述

1.文件内的module

关键字:mod

引入模块中的方法

  • usemod名字:方法名
  • usemod名字.*
  • 写全路径

二、模块化项目结构

·好处

  • 使源代码管理更加方便
  • 更方便读

1.关于module

默认是private

组成一个module

  • File
  • Directory,需要mod.rs

2.各个模块之间互相引用

crate根目录引入
super相对路径引入

三、推荐项目结构

bin目录

  • 把main.rs放入

somelib

  • 需要修改Cargo.toml
[somelib]
name =“somelib"
path=“src/somelib/mod.rs”I  //文件夹
path=“src/somelib/some.rs” //单个文件

1.实例

创建一个项目

创建一个库mlib

  • 创建单文件translate模块
  • 创建music目录模块
    mp3
    flac
    在flac调用translate模块中的方法
    将flac中的music方法暴露出去

在这里插入图片描述

main.rs

fn main() {println!("Hello, world!");mlib::translate::func1();mlib::music::flac::flac();mlib::music::flac::flac_music();mlib::test();mlib::flac_music();
}

src/mlib/music/flac.rs

pub fn flac() {//方法1 调用外层translate.rs里面的方法super::super::translate::func1();println!("flac");
}pub fn flac_music() {// 方法2crate::translate::func1();println!("flac_music");
}

src/mlib/music/mod.rs

// 声明出去pub mod flac;
pub mod mp3;

src/mlib/music/mp3.rs

pub fn mp3() {println!("mp3");
}

src/mlib/mod.rs


// 暴露模块
pub mod music;
pub mod translate;pub fn test() {println!("test....");
}// 暴露模块中的某个函数
pub use music::flac::flac_music;

src/mlib/translate.rs

pub fn func1() {println!("Hello,  func1!");
}

Cargo.toml

[package]
name = "demo"
version = "0.1.0"
edition = "2021"[lib]
name="mlib"
path="src/mlib/mod.rs"[dependencies]

参考

  • Rust项目结构
http://www.lryc.cn/news/477860.html

相关文章:

  • 计算并联电阻的阻值
  • MySQL符号类型(详细)
  • Angular引用控件类
  • stm32 踩坑笔记
  • 文件上传和文件包含
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第十八集补充:制作空洞骑士独有的EventSystem和InputModule
  • yelp数据集上试验SVD,SVDPP,PMF,NMF 推荐算法
  • 计算机视觉常用数据集Cityscapes的介绍、下载、转为YOLO格式进行训练
  • Flink和Spark在实时计算方面有何异同
  • 纵然千万数据流逝,唯独vector长存
  • 【LeetCode】【算法】739. 每日温度
  • 2025年知识管理新方案:十款前沿知识库搭建工具详解
  • WebSocket实现消息实时推送
  • flink 内存配置(三):设置JobManager内存
  • 蓝桥杯 Python组-神奇闹钟(datetime库)
  • 解决阿里云三个月证书过期 免费SSL证书部署教程
  • VBA03-变量
  • docker-ce-stable‘ 下载元数据失败 : Cannot download repomd.xml: Cannot download
  • C中定义字符串有下列几种形式
  • 写一个小日历
  • 【数据库】elasticsearch
  • Rust 构建 TCP/UDP 网络服务
  • docker镜像文件导出导入
  • ViT面试知识点
  • ChatGPT 和 RAG(检索增强生成)的区别;ChatGPT 和 RAG 的联系
  • qt获取本机IP和定位
  • CodeQL学习笔记(5)-CodeQL for Java(AST、元数据、调用图)
  • 服装品牌零售业态融合中的创新发展:以开源 AI 智能名片 S2B2C 商城小程序为视角
  • 前端将网页转换为pdf并支持下载与上传
  • Android 依赖统一配置管理(Version Catalogs)