所以我目前难以struct通过将Yaml文件加载到堆内存来初始化:
extern crate yaml_rust;
use std::io::prelude::*;
use std::fs;
use yaml_rust::{Yaml, YamlLoader};
struct Petrovich {
middlename: Yaml,
firstname: Yaml,
lastname: Yaml
}
impl Petrovich {
fn new() -> Petrovich {
// Open Rules File (Panics on error)
let mut f = fs::File::open("./src/rules.yml").unwrap();
// Create String Buffer and Read to it
let mut buffer = String::new();
f.read_to_string(&mut buffer).unwrap();
// Pass Buffer to Yaml and unwrap
let rules: &Yaml = &YamlLoader::load_from_str(&buffer).unwrap()[0];
// Return Petrovich with preloaded rules
Petrovich { …Run Code Online (Sandbox Code Playgroud) 使用println!按预期工作时:
println!("??????!"); // ??????!
Run Code Online (Sandbox Code Playgroud)
但是使用调试格式:
println!("{:?}", "??????!"); // "\u{41f}\u{440}\u{438}\u{432}\u{435}\u{442}!"
Run Code Online (Sandbox Code Playgroud)
使用assert!:
assert!("??????!" != "??????!") // 'assertion failed: "\u{41f}\u{440}\u{438}\u{432}\u{435}\u{442}!" != "\u{41f}\u{440}\u{438}\u{432}\u{435}\u{442}!"
Run Code Online (Sandbox Code Playgroud)
有没有办法以assert!调试格式正确打印?