rust feature h和 workspace相关知识 (十一)

feature 相关作用和描述

在 Rust 中,features(特性) 是一种控制可选功能和依赖的机制。它允许你在编译时根据不同的需求启用或禁用某些功能,优化构建,甚至改变代码的行为。Rust 的特性使得你可以轻松地为库提供不同的配置,或者在不同的环境中使用不同的功能

1.新建一个项目 study_feature_2025_1_23

Cargo.toml

[package]
name = "study_feature_2025_1_23"
version = "0.1.0"
edition = "2021"
publish = ["crates-io"][dependencies]
serde = {version = "1.0.217", features = ["derive"],optional = true}
rgb = {version = "0.8.43", features = ["serde"],optional = true}[features]
color = ["dep:rgb"] # 依赖 rgb 项目 
shapes = ["color","dep:serde","rgb?/serde"] # 依赖加载 color,serde, 如果使用了 rgb 则加载 serde 特性
default = ["color"] # 默认开启 color feature
  • lib.rs 代码如下
pub fn draw_line(x: i32, y: i32) {println!("Drawing a line at ({}, {})", x, y);
}#[cfg(feature = "color")] // 这个是设置这个模块为一个feature : color 
pub mod color {pub use rgb::RGB;pub fn draw_line(x: i32,y: i32, color: &RGB<u16>){println!("{color}, Drawing a line at ({}, {})", x, y);}
}#[cfg(feature = "shapes")] // 这个是设置这个模块为一个feature : shapes 
pub mod shapes {use serde::{Deserialize, Serialize};use rgb::RGB;#[derive(Debug,Serialize,Deserialize)]pub struct Rectangle {pub width: u32,pub height: u32,pub color: RGB<u16>,}}
2.新建一个项目 study_feature_consumer_2025_1_23

Cargo.toml

[package]
name = "study_feature_consumer_2025_1_23"
version = "0.1.0"
edition = "2021"
publish = ["crates-io"][dependencies]
study_feature_2025_1_23 = {path = "../study_feature_2025_1_23",default-features = false,features = ["shapes"]}
# default-features  是false 关闭所有默认feature
  • main.rs
use study_feature_2025_1_23::color;
use study_feature_2025_1_23::shapes;fn main() {study_feature_2025_1_23::draw_line(1, 2);let color = color::RGB {r: 0,g: 0,b: 0,};color::draw_line(1, 2, &color);println!("形状: {:?}", shapes::Rectangle {width: 1,height: 2,color,});
}
workspace
[workspace]
resolver = "2"
members = ["hecto3_8","hecto3_9","hecto3_10","hecto3_11","hecto4_1","hecto4_3","hecto4_4","hecto4_5","hecto4_6","hecto4_7","hecto4_8","hecto4_9","hecto5_1","hecto5_2","hecto5_3","hecto5_4","hecto5_5","hecto5_6","hecto5_7","hecto5_8","hecto5_9","hecto5_10","hecto5_11",
][workspace.dependencies] # 依赖的全局包
env_logger = "0.11.3"[profile.release]
lto = true
opt-level = "z"
panic = "abort"
# 编译器能进行全局优化
codegen-units = 1[profile.dev]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python-办公自动化】实现自动化输出json数据类型的分析报告和正逆转换

分析报告 import json from pprint import pprint, PrettyPrinterdef analyze_energy_data(file_path):"""能源数据分析与结构查看函数参数:file_path (str): JSON文件路径功能:1. 加载并解析JSON数据2. 显示数据结构概览3. 交互式结构探索"""…

麒麟操作系统服务架构保姆级教程(十四)iptables防火墙四表五链和防火墙应用案例

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 防火墙在运维工作中有着不可或缺的重要性。首先&#xff0c;它是保障网络安全的关键防线&#xff0c;通过设置访问控制规则&#xff0c;可精准过滤非法网络流量&#xff0c;有效阻挡外部黑客攻击、恶…

力扣25.k个一组翻转链表

给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值&…

Midjourney基础-常用修饰词+权重的用法大全

用好修饰词很关键 Midjourney要用除了掌握好提示词的写法&#xff0c;按照上一篇《做Midjourney最好图文教程-提示词公式以及高级参数讲解》画面主体 场景氛围 主体行为 构图方式 艺术风格 图像质量。 要画出有质感的内容我们必须要掌握好“修饰词”&#xff0c;这些修饰…

钉钉群机器人设置——python版本

钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要&#xff0c;很多项目执行程序后出现报错信息无法第一时间收到&#xff0c;因此实时预警对于监控程序还是有必要。&#xff08;仅个人观点&#xff09; 参考文档及博客&#xff1a…

doris:异常数据处理

在导入过程中&#xff0c;源数据列与目标列的数据类型可能存在不一致的情况。导入过程会对这些类型不一致的数据进行转换&#xff0c;但在转换过程中可能会出现字段类型不匹配、字段超长、精度不匹配等问题&#xff0c;从而导致转换失败。 为了处理这些异常情况&#xff0c;Do…

小白爬虫冒险之反“反爬”:无限debugger、禁用开发者工具、干扰控制台...(持续更新)

背景浅谈 小白踏足JS逆向领域也有一年了&#xff0c;对于逆向这个需求呢主要要求就是让我们去破解**“反爬机制”**&#xff0c;即反“反爬”&#xff0c;脚本处理层面一般都是decipher网站对request设置的cipher&#xff0c;比如破解一个DES/AES加密拿到key。这篇文章先不去谈…

【Elasticsearch】中数据流需要配置索引模板吗?

是的&#xff0c;数据流需要配置索引模板。在Elasticsearch中&#xff0c;数据流&#xff08;Data Streams&#xff09;是一种用于处理时间序列数据的高级结构&#xff0c;它背后由多个隐藏的索引组成&#xff0c;这些索引被称为后备索引&#xff08;Backing Indices&#xff0…

babylon.js-3:了解STL网格模型

网格模型上色 本篇文章主要介绍如何在 BabylonJS 中实现STL网格模型上色。 文章目录 网格模型上色运用场景概要延申正文加载器库的支持认识 OBJ 和 STL 文件GUI 色板选择器网格模型异步加载加载动画网格模型上色官方即将弃用 ImportMesh 而推荐使用 ImportMeshAsync 说明OBJ …

大数据治理实战:架构、方法与最佳实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 大数据治理是确保数据质量、合规性和安全性的重要手段&#xff0c;尤其在数据驱动决策和人工智能应用日益普及的背景下&…

【时时三省】(C语言基础)文件的随机读写

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 fseek 根据文件指针的位置和偏移量来定位文件指针 示例&#xff1a; 这个输出的就是ade seek&#xff3f;cur的意思是从当前偏移量 2就是从a往后偏移两个就是d 偏移量 SEEK&#xff3f;CUR…

均方误差(MSE)揭秘:预测模型的“真面目”

前言 在这个充满数据的世界里,我们需要各种方式来衡量一个模型的表现,尤其在回归问题中,均方误差(MSE)是我们非常常见的“好朋友”。它就像一位忠诚的侦探,默默为我们揭示预测值与实际值之间的真相。今天,让我们一起进入均方误差的世界,看看它是如何用简单却有效的方式…

yolov5错误更改与相关参数详解(train.py)

1.错误更改 main中相关参数 if __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, default, helpinitial weights path)parser.add_argument(--cfg, typestr, defaultmodels/yolov5s.yaml, helpmodel.yaml path)parser.add_arg…

第4章 基于中点电流的NPC逆变器中点电压平衡策略

1. 工作原理 1.1 NPC型三电平逆变器工作原理 NPC型三相三电平逆变器有A、B、C三个桥臂&#xff0c;其组成结构是相同的&#xff0c;本章以A相为例&#xff0c;对其工作原理进行分析。开关器件SA1和SA3、SA2和SA4为互补器件&#xff0c;通过控制开关器件的导通和关断状态&#…

【C++】内联函数inline、关键字auto与新式for

内联函数 内联函数背景 我们在使用C语言中我们都学过函数&#xff0c;我们知道函数在调用的过程中需要开辟栈帧。如果我们需要频繁的调用一个函数&#xff0c;假设我们调用10次Add()函数&#xff0c;那我们就需要建立10次栈帧。我们都知道在栈帧中要做很多事情&#xff0c;例如…

【深度学习】图像分类数据集

图像分类数据集 MNIST数据集是图像分类中广泛使用的数据集之一&#xff0c;但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集。 %matplotlib inline import torch import torchvision from torch.utils import data from torchvision import transfo…

DeepSeek-R1:多阶段训练提升推理能力

标题&#xff1a;DeepSeek-R1&#xff1a;多阶段训练提升推理能力 文章信息摘要&#xff1a; DeepSeek-R1通过结合监督学习与强化学习的多阶段训练方法&#xff0c;显著提升了大型语言模型的推理能力&#xff0c;尤其在处理复杂数学问题时表现优异。该方法克服了纯强化学习模型…

以创新芯片技术助力科技发展

在当今数字化与智能化浪潮中&#xff0c;芯片作为现代科技的核心&#xff0c;正悄然推动着各个行业的变革。厦门国科安芯科技有限公司专注于高性能芯片的研发与创新&#xff0c;致力于为工业、汽车和商业航天等领域提供高效、可靠的解决方案。以下是国科安芯推出的几款具有代表…

【MySQL — 数据库增删改查操作】深入解析MySQL的 Retrieve 检索操作

Retrieve 检索 示例 1. 构造数据 创建表结构 create table exam1(id bigint, name varchar(20) comment同学姓名, Chinesedecimal(3,1) comment 语文成绩, Math decimal(3,1) comment 数学成绩, English decimal(3,1) comment 英语成绩 ); 插入测试数据 insert into ex…

Ansible自动化运维实战--通过role远程部署nginx并配置(8/8)

文章目录 1、准备工作2、创建角色结构3、编写任务4、准备配置文件&#xff08;金甲模板&#xff09;5、编写变量6、编写处理程序7、编写剧本8、执行剧本Playbook9、验证-游览器访问每台主机的nginx页面 在 Ansible 中&#xff0c;使用角色&#xff08;Role&#xff09;来远程部…