Skip to content

Commit

Permalink
Add yaml support
Browse files Browse the repository at this point in the history
Fix #1
  • Loading branch information
pickfire committed Feb 2, 2021
1 parent 5e1dbf6 commit 8734f36
Show file tree
Hide file tree
Showing 9 changed files with 152 additions and 11 deletions.
54 changes: 44 additions & 10 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 27 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ serde-transcode = "1.0"
serde_cbor = { version = "0.11", optional = true }
serde_json = { version = "1.0", optional = true }
serde_toml = { version = "0.5", optional = true, package = 'toml' }
serde_yaml = { version = "0.8", optional = true }

[features]
default = ["cbor", "json", "toml"]
default = ["cbor", "json", "toml", "yaml"]
cbor = ["serde_cbor"]
json = ["serde_json"]
toml = ["serde_toml"]
yaml = ["serde_yaml"]

[[bin]]
name = "cbor2json"
Expand All @@ -30,6 +32,10 @@ required-features = ["cbor", "json"]
name = "cbor2toml"
required-features = ["cbor", "toml"]

[[bin]]
name = "cbor2yaml"
required-features = ["cbor", "yaml"]

[[bin]]
name = "json2cbor"
required-features = ["json", "cbor"]
Expand All @@ -38,10 +44,30 @@ required-features = ["json", "cbor"]
name = "json2toml"
required-features = ["json", "toml"]

[[bin]]
name = "json2yaml"
required-features = ["json", "yaml"]

[[bin]]
name = "toml2cbor"
required-features = ["toml", "cbor"]

[[bin]]
name = "toml2json"
required-features = ["toml", "json"]

[[bin]]
name = "toml2yaml"
required-features = ["toml", "yaml"]

[[bin]]
name = "yaml2cbor"
required-features = ["yaml", "cbor"]

[[bin]]
name = "yaml2json"
required-features = ["yaml", "json"]

[[bin]]
name = "yaml2toml"
required-features = ["yaml", "toml"]
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ $ cargo install babelfish --features="cbor json" # cbor2json, json2cbor
- cbor
- json
- toml
- yaml

## Usage

Expand Down
12 changes: 12 additions & 0 deletions src/bin/cbor2yaml.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
use std::io::{self, BufReader, BufWriter};

fn main() -> Result<(), Box<dyn std::error::Error>> {
let reader = BufReader::new(io::stdin());
let writer = BufWriter::new(io::stdout());

let mut deserializer = serde_cbor::Deserializer::from_reader(reader);
let mut serializer = serde_yaml::Serializer::new(writer);

serde_transcode::transcode(&mut deserializer, &mut serializer)?;
Ok(())
}
12 changes: 12 additions & 0 deletions src/bin/json2yaml.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
use std::io::{self, BufReader, BufWriter};

fn main() -> Result<(), Box<dyn std::error::Error>> {
let reader = BufReader::new(io::stdin());
let writer = BufWriter::new(io::stdout());

let mut deserializer = serde_json::Deserializer::from_reader(reader);
let mut serializer = serde_yaml::Serializer::new(writer);

serde_transcode::transcode(&mut deserializer, &mut serializer)?;
Ok(())
}
15 changes: 15 additions & 0 deletions src/bin/toml2yaml.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
use std::io::{self, BufReader, BufWriter, Read};

fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut reader = BufReader::new(io::stdin());
let writer = BufWriter::new(io::stdout());

let mut buffer = String::new();
reader.read_to_string(&mut buffer)?;

let mut deserializer = serde_toml::Deserializer::new(&buffer);
let mut serializer = serde_yaml::Serializer::new(writer);

serde_transcode::transcode(&mut deserializer, &mut serializer)?;
Ok(())
}
14 changes: 14 additions & 0 deletions src/bin/yaml2cbor.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
use std::io::{self, BufReader, BufWriter};

fn main() -> Result<(), Box<dyn std::error::Error>> {
let reader = BufReader::new(io::stdin());
let writer = BufWriter::new(io::stdout());

let writer = serde_cbor::ser::IoWrite::new(writer);

let deserializer = serde_yaml::Deserializer::from_reader(reader);
let mut serializer = serde_cbor::Serializer::new(writer);

serde_transcode::transcode(deserializer, &mut serializer)?;
Ok(())
}
12 changes: 12 additions & 0 deletions src/bin/yaml2json.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
use std::io::{self, BufReader, BufWriter};

fn main() -> Result<(), Box<dyn std::error::Error>> {
let reader = BufReader::new(io::stdin());
let writer = BufWriter::new(io::stdout());

let deserializer = serde_yaml::Deserializer::from_reader(reader);
let mut serializer = serde_json::Serializer::new(writer);

serde_transcode::transcode(deserializer, &mut serializer)?;
Ok(())
}
15 changes: 15 additions & 0 deletions src/bin/yaml2toml.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
use std::io::{self, BufReader, BufWriter, Write};

fn main() -> Result<(), Box<dyn std::error::Error>> {
let reader = BufReader::new(io::stdin());
let mut writer = BufWriter::new(io::stdout());

let mut buffer = String::new();

let deserializer = serde_yaml::Deserializer::from_reader(reader);
let mut serializer = serde_toml::Serializer::new(&mut buffer);

serde_transcode::transcode(deserializer, &mut serializer)?;
writer.write_all(buffer.as_str().as_bytes())?;
Ok(())
}

0 comments on commit 8734f36

Please sign in to comment.