当前位置:网站首页>文盘Rust -- 配置文件解析
文盘Rust -- 配置文件解析
2022-08-05 18:33:00 【51CTO】
处理配置文件是应用开发的常规操作。成熟的开发语言都有自己处理配置文件的套路。golang 有 viper 这样的成熟第三方库来处理配置文件。rust 的第三方库并不成熟。
这篇文章我们来聊聊 rust 如何处理配置文件。
处理yaml配置文件的流程
配置文件的作用是一系列应用程序相应功能的开关。在应用启动前配置,应用启动时加载,以备运行时使用。
我们依旧用[interactcli-rs](https://github.com/jiashiwen/interactcli-rs) 为例,说明一下配置文件的处理过程。
解析配置文件的主要逻辑在 src/configure 目录。
- 定义 config 结构体
首先,定义一个结构体用来承载配置项。由于 Config struct 需要与yaml文件交互,我们定义一个具备序列化与反序列化能力的结构体。
- 为 Config 结构体定义必要的功能
- 利用 lazy_static 初始化配置项单例
- 加载配置文件
[interactcli-rs](https://github.com/jiashiwen/interactcli-rs) 是一个命令行程序。加载配置文件的策略为:当指定配置文件位置时,则按给定路径加载配置;如果未指定配置文件则按照默认路径加载,此时若默认配置文件不存在则终止程序。
src/cmd/rootcmd.rs 中的 cmd_match 函数包含上面的逻辑。
后记
手工处理配置文件还是比较繁琐。尤其在配置文件的书写上,必须明确配置每一个配置项,即使配置项为空也需填写。为了保证配置文件的配置项齐全,我们为Config struct 定义了 flush_to_file 函数,用来生成配置文件。
由于rust的生态较 golang 以及 java 的生态还很年轻,第三方的工具包不及两者完善。在配置文件的处理上比较繁琐,很多地方需要手工处理,但是已基本满足要求。
咱们下期见。
边栏推荐
- 荣威RX9年内上市 荣威公布未来产品计划
- 报表控件Stimulsoft Report中的 自定义QR 码教程
- Orchestrator 对 MGR MySQL Group Replication的支持
- playwright录制脚本
- LVS load balancing cluster
- eKuiper Newsletter 2022-07|v1.6.0:Flow 编排 + 更好用的 SQL,轻松表达业务逻辑
- From the sequence with the sequence structure binary tree traversal sequence
- MongoDB数据库增删改查基本使用
- 现在的Android 开发面试都会问到一些什么?
- JVM-第四章 程序计数器
猜你喜欢

金仓数据库 KingbaseES V8 GIS数据迁移方案(4. 基于SuperMap平台的数据迁移到KES)

BFD实验演示(Huawei路由器设备配置)

1.9 亿美元被“掏空”!黑客牵头,路人“趁火打劫”,一切仅因一个低级致命漏洞...

Docker install Mysql5.7

C陷阱:数组越界遍历,不报错却出现死循环?从内存解析角度看数组与局部变量之“爱恨纠葛”

齐岳|阿霉素/四氧化三铁纳米粒微球|钆参杂四氧化三铁Fe3O4复合纳米粒子

1. Reporting platform planning

译文推荐|Apache Pulsar 隔离系列(四):单集群隔离策略

2022杭电多校六 1009-Map (巴那赫不动点)

CSDN社区图书馆活动之开书大吉(书评一)
随机推荐
包载信使RNA(mRNA)的虫草多糖脂质体|冬虫夏草多糖脂质体包载小干扰RNA(siRNA)
齐岳|纳米二氧化硅/四氧化三铁磁性造影粒子(SiO2/Fe3O4)|壳聚糖脂质体包裹超顺磁四氧化三铁纳米粒子
EfficientFormer study notes
MySQL数据操作
BHQ淬灭试剂BHQ-2 acid|cas:1214891-99-2|BHQ-2 酸|BHQ-2 羧基的信息你知道多少
防火墙的目标地址转换和源地址转换
OpenCV创建矩阵以及转为Eigen矩阵
(22年纯享)阿里巴巴十亿级并发系统设计手册已开源
JUC并发编程:第二季
心脑体漫画版本
记一次Max模型导入到GIS平台歪了,尺寸不对过程分析
齐岳|阿霉素/四氧化三铁纳米粒微球|钆参杂四氧化三铁Fe3O4复合纳米粒子
从中序与后序遍历序列构造二叉树
深信服上网行为管理如何配置双因素/双因子(2FA)身份认证
YOLOV5学习笔记(五)——使用代码detect train讲解
go基础之web应用
C陷阱:数组越界遍历,不报错却出现死循环?从内存解析角度看数组与局部变量之“爱恨纠葛”
PEG化四氧化三铁纳米颗粒(氨基末端)NH2-PEG-Fe3O4
力扣每日一题-第49天-724. 寻找数组的中心下标
企业数据治理面临的 6 大挑战!