[−][src]Function rust_lcm_codegen::parser::const_value
pub fn const_value(ty: PrimitiveType, input: &str) -> IResult<&str, ConstValue>
Parse a const value of the given type.
use rust_lcm_codegen::parser::{const_value, ConstValue, PrimitiveType}; assert_eq!(const_value(PrimitiveType::Int8, "42"), Ok(("", ConstValue::Int8( 42)))); assert_eq!(const_value(PrimitiveType::Int8, "-42"), Ok(("", ConstValue::Int8( -42)))); assert_eq!(const_value(PrimitiveType::Int8, "0x2f"), Ok(("", ConstValue::Int8( 0x2f)))); assert_eq!(const_value(PrimitiveType::Int8, "-0x2f"), Ok(("", ConstValue::Int8(-0x2f)))); assert_eq!(const_value(PrimitiveType::Int8, "022"), Ok(("", ConstValue::Int8( 0o22)))); assert_eq!(const_value(PrimitiveType::Int8, "-022"), Ok(("", ConstValue::Int8(-0o22)))); assert_eq!(const_value(PrimitiveType::Int8, "1024"), Err(Err::Error(("1024", ErrorKind::MapRes)))); assert_eq!(const_value(PrimitiveType::Int16, "1024"), Ok(("", ConstValue::Int16( 1024)))); assert_eq!(const_value(PrimitiveType::Int16, "-1024"), Ok(("", ConstValue::Int16(-1024)))); assert_eq!(const_value(PrimitiveType::Int16, "32768"), Err(Err::Error(("32768", ErrorKind::MapRes)))); assert_eq!(const_value(PrimitiveType::Int32, "32768"), Ok(("", ConstValue::Int32( 32768)))); assert_eq!(const_value(PrimitiveType::Int32, "-32768"), Ok(("", ConstValue::Int32(-32768)))); assert_eq!(const_value(PrimitiveType::Int32, "2147483648"), Err(Err::Error(("2147483648", ErrorKind::MapRes)))); assert_eq!(const_value(PrimitiveType::Int64, "2147483648"), Ok(("", ConstValue::Int64( 2147483648)))); assert_eq!(const_value(PrimitiveType::Int64, "-2147483648"), Ok(("", ConstValue::Int64(-2147483648)))); assert_eq!(const_value(PrimitiveType::Int64, "92233720368547758073"), Err(Err::Error(("92233720368547758073", ErrorKind::MapRes)))); assert_eq!(const_value(PrimitiveType::Float, "10"), Ok(("", ConstValue::Float( "10".to_owned())))); assert_eq!(const_value(PrimitiveType::Float, "10.35"), Ok(("", ConstValue::Float( "10.35".to_owned())))); assert_eq!(const_value(PrimitiveType::Float, "-10.35"), Ok(("", ConstValue::Float( "-10.35".to_owned())))); assert_eq!(const_value(PrimitiveType::Float, "10.35e12"), Ok(("", ConstValue::Float( "10.35e12".to_owned())))); assert_eq!(const_value(PrimitiveType::Float, "-10.35e12"), Ok(("", ConstValue::Float( "-10.35e12".to_owned())))); assert_eq!(const_value(PrimitiveType::Float, "10.35e12000"), Ok(("", ConstValue::Float("10.35e12000".to_owned())))); assert_eq!(const_value(PrimitiveType::Float, "asdf"), Err(Err::Error(("asdf", ErrorKind::Digit)))); assert_eq!(const_value(PrimitiveType::Double, "10"), Ok(("", ConstValue::Double( "10".to_owned())))); assert_eq!(const_value(PrimitiveType::Double, "10.35"), Ok(("", ConstValue::Double( "10.35".to_owned())))); assert_eq!(const_value(PrimitiveType::Double, "-10.35"), Ok(("", ConstValue::Double( "-10.35".to_owned())))); assert_eq!(const_value(PrimitiveType::Double, "10.35e12"), Ok(("", ConstValue::Double( "10.35e12".to_owned())))); assert_eq!(const_value(PrimitiveType::Double, "-10.35e12"), Ok(("", ConstValue::Double( "-10.35e12".to_owned())))); assert_eq!(const_value(PrimitiveType::Double, "10.35e12000"), Ok(("", ConstValue::Double("10.35e12000".to_owned())))); assert_eq!(const_value(PrimitiveType::Double, "asdf"), Err(Err::Error(("asdf", ErrorKind::Digit)))); assert_eq!(const_value(PrimitiveType::Byte, "42"), Ok(("", ConstValue::Byte( 42)))); assert_eq!(const_value(PrimitiveType::Byte, "-42"), Err(Err::Error(("-42", ErrorKind::Digit)))); assert_eq!(const_value(PrimitiveType::Byte, "1024"), Err(Err::Error(("1024", ErrorKind::MapRes))));