Skip to content

Commit

Permalink
chore: get crate ready for release
Browse files Browse the repository at this point in the history
  • Loading branch information
justjanne committed Feb 25, 2024
1 parent c003919 commit 52cc1a9
Show file tree
Hide file tree
Showing 1,152 changed files with 5,708 additions and 5,731 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --verbose
- name: Run lint
run: cargo clippy --verbose
- name: Run tests
run: cargo test --verbose
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/.idea
/target
/Cargo.lock
8 changes: 0 additions & 8 deletions .idea/.gitignore

This file was deleted.

11 changes: 0 additions & 11 deletions .idea/fcmlib.iml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

15 changes: 12 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
[package]
name = "fcmlib"
version = "0.1.0"
repository = "https://github.com/justjanne/fcmlib/"
authors = ["Janne Mareike Koschinski <[email protected]>"]
description = "Library to read and write Brother's FCM plotter files"
readme = "README.md"
license = "MPL-2.0"
keywords = ["plotter", "parser"]
categories = ["encoding"]
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
exclude = ["/.*", "/tests"]

[dependencies]
nom = "7.1.3"
log = "0.4.20"
bitflags = "2.4.2"
bitflags = "2.4.2"

[lints.rust]
unsafe_code = "forbid"
24 changes: 12 additions & 12 deletions src/encode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,84 +13,84 @@ pub(crate) trait Encode {

impl Encode for u8 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for u16 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for u32 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for u64 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for u128 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for i8 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for i16 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for i32 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for i64 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for i128 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for f32 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}

impl Encode for f64 {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
buffer.write(&self.to_le_bytes())?;
buffer.write_all(&self.to_le_bytes())?;
Ok(())
}
}
6 changes: 3 additions & 3 deletions src/file_header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ pub(crate) fn read_file_header(input: &[u8]) -> IResult<&[u8], FileHeader> {
impl Encode for FileHeader {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
self.variant.encode(buffer)?;
buffer.write(&self.version.as_bytes()[0..4])?;
buffer.write_all(&self.version.as_bytes()[0..4])?;
self.content_id.encode(buffer)?;

let mut variable_header: Vec<u8> = vec![];
Expand All @@ -101,15 +101,15 @@ impl Encode for FileHeader {
self.thumbnail_block_size_height
.encode(&mut variable_header)?;
(self.thumbnail.len() as u32).encode(&mut variable_header)?;
variable_header.write(&self.thumbnail)?;
variable_header.write_all(&self.thumbnail)?;

self.generator.encode(&mut variable_header)?;
if let Some(print_to_cut) = &self.print_to_cut {
(*print_to_cut as u32).encode(&mut variable_header)?;
}

(variable_header.len() as u32).encode(buffer)?;
buffer.write(&variable_header)?;
buffer.write_all(&variable_header)?;

Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions src/file_type.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ pub(crate) fn read_file_type(input: &[u8]) -> IResult<&[u8], FileType> {
impl Encode for FileType {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
match self {
FileType::Cut => buffer.write(&0x10u32.to_le_bytes())?,
FileType::PrintAndCut => buffer.write(&0x38u32.to_le_bytes())?,
FileType::Cut => buffer.write_all(&0x10u32.to_le_bytes())?,
FileType::PrintAndCut => buffer.write_all(&0x38u32.to_le_bytes())?,
};
Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions src/file_variant.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ pub(crate) fn read_variant(input: &[u8]) -> IResult<&[u8], FileVariant> {
impl Encode for FileVariant {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
match self {
FileVariant::FCM => buffer.write("#FCM".as_bytes())?,
FileVariant::VCM => buffer.write("#VCM".as_bytes())?,
FileVariant::FCM => buffer.write_all("#FCM".as_bytes())?,
FileVariant::VCM => buffer.write_all("#VCM".as_bytes())?,
};
Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions src/generator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@ impl Encode for Generator {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
match self {
Generator::App(version) => {
buffer.write("1APP".as_bytes())?;
buffer.write_all("1APP".as_bytes())?;
version.encode(buffer)?;
}
Generator::Web(version) => {
buffer.write("1WEB".as_bytes())?;
buffer.write_all("1WEB".as_bytes())?;
version.encode(buffer)?;
}
Generator::Device(id, version) => {
Expand Down
3 changes: 0 additions & 3 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,3 @@ mod point;
mod segment_bezier;
mod segment_line;
mod util;

#[cfg(test)]
mod tests;
8 changes: 4 additions & 4 deletions src/outline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ pub(crate) fn read_outline(input: &[u8]) -> IResult<&[u8], Outline> {
fn read_outline_line(input: &[u8]) -> IResult<&[u8], Outline> {
map(
length_count(le_u32, segment_line::read_segment_line),
|segments| Outline::Line(segments),
Outline::Line,
)(input)
}

fn read_outline_bezier(input: &[u8]) -> IResult<&[u8], Outline> {
map(
length_count(le_u32, segment_bezier::read_segment_bezier),
|segments| Outline::Bezier(segments),
Outline::Bezier,
)(input)
}

Expand All @@ -43,14 +43,14 @@ impl Encode for Outline {
match self {
Outline::Line(segments) => {
OutlineTag::Line.encode(buffer)?;
buffer.write(&(segments.len() as u32).to_le_bytes())?;
buffer.write_all(&(segments.len() as u32).to_le_bytes())?;
for segment in segments {
segment.encode(buffer)?;
}
}
Outline::Bezier(segments) => {
OutlineTag::Bezier.encode(buffer)?;
buffer.write(&(segments.len() as u32).to_le_bytes())?;
buffer.write_all(&(segments.len() as u32).to_le_bytes())?;
for segment in segments {
segment.encode(buffer)?;
}
Expand Down
4 changes: 2 additions & 2 deletions src/outline_tag.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ pub(crate) fn read_outline_tag(input: &[u8]) -> IResult<&[u8], OutlineTag> {
impl Encode for OutlineTag {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
match self {
OutlineTag::Line => buffer.write(&0u32.to_le_bytes())?,
OutlineTag::Bezier => buffer.write(&1u32.to_le_bytes())?,
OutlineTag::Line => buffer.write_all(&0u32.to_le_bytes())?,
OutlineTag::Bezier => buffer.write_all(&1u32.to_le_bytes())?,
};
Ok(())
}
Expand Down
2 changes: 1 addition & 1 deletion src/path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ pub(crate) fn read_path(input: &[u8]) -> IResult<&[u8], Path> {
impl Encode for Path {
fn encode(&self, buffer: &mut Vec<u8>) -> io::Result<()> {
self.tool.encode(buffer)?;
buffer.write(
buffer.write_all(
&self
.shape
.as_ref()
Expand Down
2 changes: 1 addition & 1 deletion src/path_shape.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub fn read_path_shape<'a>(
cond(
outline_count > 0,
map(
tuple((read_point, count(read_outline, outline_count as usize))),
tuple((read_point, count(read_outline, outline_count))),
move |(start, outlines)| PathShape { start, outlines },
),
)
Expand Down
4 changes: 2 additions & 2 deletions src/path_tool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ pub fn read_path_tool(input: &[u8]) -> IResult<&[u8], PathTool> {

impl Encode for PathTool {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
buffer.write(&4u32.to_le_bytes())?;
buffer.write(&self.bits().to_le_bytes())?;
buffer.write_all(&4u32.to_le_bytes())?;
buffer.write_all(&self.bits().to_le_bytes())?;
Ok(())
}
}
4 changes: 2 additions & 2 deletions src/piece.rs
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ impl Encode for Piece {
0u32.encode(buffer)?;
} else {
1u8.encode(buffer)?;
buffer.write(&self.label.as_bytes()[0..3])?;
buffer.write_all(&self.label.as_bytes()[0..3])?;
}

let mut path_data: Vec<Vec<u8>> = vec![];
Expand All @@ -113,7 +113,7 @@ impl Encode for Piece {
(path_data.len() as u32).encode(buffer)?;
for path in path_data {
(path.len() as u32).encode(buffer)?;
buffer.write(&path)?;
buffer.write_all(&path)?;
}

Ok(())
Expand Down
2 changes: 1 addition & 1 deletion src/piece_restrictions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ pub(crate) fn read_piece_restrictions(input: &[u8]) -> IResult<&[u8], PieceRestr

impl Encode for PieceRestrictions {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
buffer.write(&self.bits().to_le_bytes())?;
buffer.write_all(&self.bits().to_le_bytes())?;
Ok(())
}
}
2 changes: 1 addition & 1 deletion src/piece_table.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ impl Encode for PieceTable {
id.encode(buffer)?;
}
for (_, data) in &piece_data {
buffer.write(data)?;
buffer.write_all(data)?;
}

Ok(())
Expand Down
4 changes: 2 additions & 2 deletions src/point.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ pub(crate) fn read_point(input: &[u8]) -> IResult<&[u8], Point> {

impl Encode for Point {
fn encode(&self, buffer: &mut Vec<u8>) -> std::io::Result<()> {
buffer.write(&self.x.to_le_bytes())?;
buffer.write(&self.y.to_le_bytes())?;
buffer.write_all(&self.x.to_le_bytes())?;
buffer.write_all(&self.y.to_le_bytes())?;
Ok(())
}
}
Loading

0 comments on commit 52cc1a9

Please sign in to comment.