From 21cadf42c879a318549766ca14b6eb98fdbc8ddb Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 28 Mar 2016 10:07:03 +0200 Subject: [PATCH] Fix length_bytes usize issue --- src/bytes.rs | 1 + tests/issues.rs | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/bytes.rs b/src/bytes.rs index 2e3735091..c82419a96 100644 --- a/src/bytes.rs +++ b/src/bytes.rs @@ -761,6 +761,7 @@ macro_rules! length_bytes( $crate::IResult::Error(a) => $crate::IResult::Error(a), $crate::IResult::Incomplete(i) => $crate::IResult::Incomplete(i), $crate::IResult::Done(i1,nb) => { + let nb = nb as usize; let length_remaining = i1.len(); if length_remaining < nb { $crate::IResult::Incomplete($crate::Needed::Size(nb - length_remaining)) diff --git a/tests/issues.rs b/tests/issues.rs index 57f4f171f..a7de9b1ce 100644 --- a/tests/issues.rs +++ b/tests/issues.rs @@ -2,7 +2,7 @@ #[macro_use] extern crate nom; -use nom::{IResult,Needed,HexDisplay,space,digit}; +use nom::{IResult,Needed,HexDisplay,space,digit,be_u16}; use std::str; #[allow(dead_code)] @@ -97,6 +97,11 @@ fn issue_142(){ assert_eq!(subject, expected) } +#[test] +fn usize_length_bytes_issue(){ + length_bytes!(b"012346", be_u16); +} + /* DOES NOT COMPILE #[test]