Skip to content

Commit

Permalink
test(toml): Show trailing comma is fixed
Browse files Browse the repository at this point in the history
With toml-rs#470, we more reliably generate valid output.

Fixes toml-rs#387
  • Loading branch information
epage committed Jan 19, 2023
1 parent 200ded7 commit 6906cd2
Showing 1 changed file with 79 additions and 0 deletions.
79 changes: 79 additions & 0 deletions crates/toml/tests/testsuite/tables_last.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use std::collections::HashMap;

use serde::Deserialize;
use serde::Serialize;

#[test]
Expand Down Expand Up @@ -28,3 +29,81 @@ fn always_works() {

toml::to_string(&a).unwrap();
}

#[test]
fn vec_of_vec_issue_387() {
#[derive(Deserialize, Serialize, Debug)]
struct Glyph {
components: Vec<Component>,
contours: Vec<Contour>,
}

#[derive(Deserialize, Serialize, Debug)]
struct Point {
x: f64,
y: f64,
pt_type: String,
}

type Contour = Vec<Point>;

#[derive(Deserialize, Serialize, Debug)]
struct Component {
base: String,
transform: (f64, f64, f64, f64, f64, f64),
}

let comp1 = Component {
base: "b".to_string(),
transform: (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),
};
let comp2 = Component {
base: "c".to_string(),
transform: (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),
};
let components = vec![comp1, comp2];

let contours = vec![
vec![
Point {
x: 3.0,
y: 4.0,
pt_type: "line".to_string(),
},
Point {
x: 5.0,
y: 6.0,
pt_type: "line".to_string(),
},
],
vec![
Point {
x: 0.0,
y: 0.0,
pt_type: "move".to_string(),
},
Point {
x: 7.0,
y: 9.0,
pt_type: "offcurve".to_string(),
},
Point {
x: 8.0,
y: 10.0,
pt_type: "offcurve".to_string(),
},
Point {
x: 11.0,
y: 12.0,
pt_type: "curve".to_string(),
},
],
];
let g1 = Glyph {
contours,
components,
};

let s = toml::to_string_pretty(&g1).unwrap();
let _g2: Glyph = toml::from_str(&s).unwrap();
}

0 comments on commit 6906cd2

Please sign in to comment.