当前位置: 首页 > 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.mrgr.cn/news/66195.html

相关文章:

  • 借助 Aspose.Words,使用 C# 从 Word 文档中删除页面
  • 西门子编程软件报错“Step 7 basic”找不到许可证问题
  • Hadoop简介及单点伪分布式安装
  • 操作系统进程的描述与控制习题
  • 「C/C++」C/C++标准库 之 #include<cstdlib> 通用工具函数库
  • 使用TensorFlow进行图像分类
  • 深入探讨移动Web开发:从基础到实践
  • 基于Springboot+Vue的在线教育系统 (含源码数据库)
  • 自由学习记录(19)
  • 日常使用巡检
  • 选择非标加工制造,让你的产品与众不同!
  • 数据库范式
  • 【IF-MMIN】利用模态不变性特征进行缺失模态的鲁棒多模态情感识别
  • 如何用3D技术打造高转化的跨境独立站?
  • 「Mac畅玩鸿蒙与硬件29」UI互动应用篇6 - 多选问卷小应用
  • 【专题】产业全球化视角下中国企业出海人才趋势洞察报告汇总PDF洞察(附原数据表)
  • UserControl 中为 Guna2TextBox 设置 ToolTip 效果的方法
  • ARGB和‌RGB的主要区别
  • CodeQL学习笔记(5)-CodeQL for Java(AST、元数据、调用图)
  • 不入耳开放式耳机哪个品牌好?开放式耳机排行榜 10 强推荐
  • 信创证书和软考有什么不同?看这!
  • 浅谈“绿色”医院的相关建设
  • 100种算法【Python版】第46篇——快速排序
  • 波兰电商增长势头正猛,电商销售额逆势上涨
  • 微信小程序配置
  • 基于Spring Boot的卓越导师选择系统实现