TOML

How to deserialize a TOML table containing an array of tables

馋奶兔 提交于 2021-02-11 09:11:38
问题 Take the following TOML data: [[items]] foo = 10 bar = 100 [[items]] foo = 12 bar = 144 And the following rust code: use serde_derive::Deserialize; use toml::from_str; use toml::value::Table; #[derive(Deserialize)] struct Item { foo: String, bar: String } fn main() { let items_string: &str = "[[items]]\nfoo = 10\nbar = 100\n\n[[items]]\nfoo = 12\nbar = 144\n"; let items_table: Table = from_str(items_string).unwrap(); let items: Vec<Item> = items_table["items"].as_array().unwrap().to_vec(); //

How to deserialize a TOML table containing an array of tables

廉价感情. 提交于 2021-02-11 09:11:27
问题 Take the following TOML data: [[items]] foo = 10 bar = 100 [[items]] foo = 12 bar = 144 And the following rust code: use serde_derive::Deserialize; use toml::from_str; use toml::value::Table; #[derive(Deserialize)] struct Item { foo: String, bar: String } fn main() { let items_string: &str = "[[items]]\nfoo = 10\nbar = 100\n\n[[items]]\nfoo = 12\nbar = 144\n"; let items_table: Table = from_str(items_string).unwrap(); let items: Vec<Item> = items_table["items"].as_array().unwrap().to_vec(); //

How to deserialize a TOML table containing an array of tables

狂风中的少年 提交于 2021-02-11 09:08:31
问题 Take the following TOML data: [[items]] foo = 10 bar = 100 [[items]] foo = 12 bar = 144 And the following rust code: use serde_derive::Deserialize; use toml::from_str; use toml::value::Table; #[derive(Deserialize)] struct Item { foo: String, bar: String } fn main() { let items_string: &str = "[[items]]\nfoo = 10\nbar = 100\n\n[[items]]\nfoo = 12\nbar = 144\n"; let items_table: Table = from_str(items_string).unwrap(); let items: Vec<Item> = items_table["items"].as_array().unwrap().to_vec(); //

How to deserialize a TOML table containing an array of tables

随声附和 提交于 2021-02-11 09:08:16
问题 Take the following TOML data: [[items]] foo = 10 bar = 100 [[items]] foo = 12 bar = 144 And the following rust code: use serde_derive::Deserialize; use toml::from_str; use toml::value::Table; #[derive(Deserialize)] struct Item { foo: String, bar: String } fn main() { let items_string: &str = "[[items]]\nfoo = 10\nbar = 100\n\n[[items]]\nfoo = 12\nbar = 144\n"; let items_table: Table = from_str(items_string).unwrap(); let items: Vec<Item> = items_table["items"].as_array().unwrap().to_vec(); //

更简单的 Traefik 2 使用方式

余生长醉 提交于 2021-02-08 12:11:56
更简单的 Traefik 2 使用方式 经过一年多的实践,对于使用 Traefik 有了一些更深入的体会,本篇先来介绍如何简化使用,后续会逐步展开聊聊如何在云上使用这款“云原生”工具,以及结合它做一些提升业务效率和开发效率的实践。 在 Traefik 2 使用指南,愉悦的开发体验、配置基于Traefik v2的 Web 服务器 文章中,使用 Traefik 的方案引入了比较多的配置,如果你并不是在一个复杂场景使用,这样的配置是可以简化的。 简化程序配置文件 一般情况下将参数变为配置,更利于在版本控制软件中进行版本管理。在 v2 版本中,因为有了动态配置的概念,传统的固定配置,使用简写的参数来替换,并记录在容器启动配置中,可以在减少分发文件数量的情况下,达到相同的效果。 使用参数取代 traefik.toml 在之前的文章中,我提供了一般情况下,使用的默认配置内容: [global] checkNewVersion = false sendAnonymousUsage = false [log] level = "WARN" format = "common" [api] dashboard = true insecure = true [ping] [accessLog] [providers] [providers.docker] watch = true

Not able to read TOML file using Go with BurntSushi library

牧云@^-^@ 提交于 2021-01-28 07:08:46
问题 I am using the BurntSushi library to load a TOML configuration file in my GO application. I have followed the instructions on the library to write the structs and the configuration toml file itself. I am running into some trouble, and I cant seem to find the source of my issues. Here are the details: Structs: package main //ConfigurationParameters provides the struct to hold configuration parameters from config file type ConfigurationParameters struct { Title string //serviceDiscovery

rust初学记录-excel导出

佐手、 提交于 2021-01-18 14:03:29
尝试使用 rocket 导出excel文件 。 使用 toolchain 是 stable-x86_64-pc-windows-gnu Cargo.toml [package] name = "test_rust_exportexcel" version = "0.0.1" authors = ["xx <xx@163.com>"] edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # toolchain :stable-x86_64-pc-windows-gnu [dependencies] rocket = { git = "https://github.com/SergioBenitez/Rocket.git", rev = "c24f15c18f02319be83af4f3c1951dc220b52c5e" } simple_excel_writer = "0.1.7" uuid = { version = "0.8", features = ["serde", "v4"] } [dependencies.tokio] version = "1.0" features = ["fs", "io

Rust: tokio,异步代码与运行速度初探

邮差的信 提交于 2021-01-04 14:10:41
几个问题: 1、同样的一段代码,放在异步中,运行速度会如何? 2、什么情况下异步并没有改变运行速度? 3、如何提升异步的速度? toml: [dependencies] tokio = { version = "1", features = ["full"] } futures = "0.3.4" 代码: use std::time::{Duration, Instant}; use std::thread; use tokio::time; const N:i32 =1000000; struct bar{ price :f64, code: Option<String>, close: f64, open:f64, high:f64, low:f64, } impl bar{ fn default()->Self{ bar{ price:0.0, code :Some(String::from("I AM NULL")), close:0.0, open:0.0, high:0.0, low:0.0, } } fn push_vec(n:i32)->Vec<Self>{ let mut v = vec![]; for _ in 0..N{ v.push(bar::default()); } v } } fn hello(){ let v = bar::push_vec(N);

在以太坊上如何实现联盟链

早过忘川 提交于 2020-11-22 01:29:45
搞了三个月联盟链,基本上算是告一段落,大概梳理下所做的东西,希望能对要做联盟链的人有所帮助。 在写这篇文章前,简单介绍下联盟链的功能。 国密和国际算法切换 参数toml配置 有币无币 支持Gmssl P2P的证书准入 委员会成员更新 Solc编译器 Tendermint共识 权限准入 交易校验 Rpc 状态存储 系统合约 加密算法 国密和S256,P256 支持国密sm2,sm3,sm4,国际的支持p256,比特币和以太坊都使用的s256.刚开始做的时候计算支持p256和国密,因为go sdk里面证书使用了p256。后在做的过程中发现国外证书很多还需要支持RSA,遂引入了gmssl,委员会中的PK公钥和证书做了分离。 统一的接口,外部调用同一签名验签方法 国密里面有个问题,无法 recover公钥 ,校验签名比较慢。 Toml文件配置 toml文件的优点在于不需要在启动的时候指定一系列参数 节点信息 网络ID 同步模式 委员会私钥 IP和端口 txpool gas门槛 txpool账户数 节点rpc端口api 存储目录 ipc websocket 开放api rpc 端口 p2p节点配置 证书 节点私钥 节点连接数 监听地址 创世区块 创世里面指定了 UseGas 指定有无币, KindOfCrypto 指定加密类型, PermisionWlSendTx ,

各种配置文件优缺点 yaml xml json hocon

走远了吗. 提交于 2020-11-22 00:56:58
适合人类编写:ini > toml > yaml > json > xml > plist 可以存储的数据复杂度:xml > yaml > toml ~ json ~ plist > ini 其实我觉得这三者,甚至包括xml,都不是很好的配置文件格式 在小一点的工程中,我可能会考虑yaml,但个人强烈推荐的一个配置文件格式就是HOCON(Human-Optimized Config Object Notation) 是由typesafe(开发scala和play framework的公司)主导的项目: GitHub - typesafehub/config: Configuration library for JVM languages 在Google干过的同学可以参考GCL,会发现很多设计上的类似点。 我觉得比较完美的配置文件格式需有这些特性 语法要简单,灵活 简单大家都差不多 HOCON是JSON和java property的超集,最为灵活,你可以写 a: { b: { c: 3 d: 4 } } 也可以单独写 a.b.c=5 ":"号也可以换成"="或者就完全省略 2. 能够写注释,这点json简直可悲,不过可以考虑加预处理的过程 3. 能够比较方便的覆盖参数值(方便书写或者debug),比如说在config文件中定义了 a=1 可以在运行的时候,通过类似 program