pub trait WriteDataValue: Write {
// Provided method
fn write_data_value(&mut self, data_value: DataValue) -> Result<()> { ... }
}
Expand description
Extends Write
with a method to write a VAX data value (DataValue
).
§Examples
use vax_disassembler::{DataValue, WriteDataValue};
use std::io::Cursor;
for quadword in (i64::MIN..=i64::MAX).step_by(u64::MAX as usize / 241) {
let value = DataValue::Quadword(quadword);
let mut writer = Vec::with_capacity(8);
writer.write_data_value(value).unwrap();
assert_eq!(&writer, &quadword.to_le_bytes());
}
Provided Methods§
Sourcefn write_data_value(&mut self, data_value: DataValue) -> Result<()>
fn write_data_value(&mut self, data_value: DataValue) -> Result<()>
Writes in a specified VAX data value (DataValue
).
§Examples
use vax_disassembler::{DataType, DataValue, WriteDataValue};
use std::io::Cursor;
for byte in i8::MIN..=i8::MAX {
let value = DataValue::Byte(byte);
let mut writer = Vec::with_capacity(1);
writer.write_data_value(value).unwrap();
assert_eq!(&writer, &[byte as u8]);
}
for word in (i16::MIN..=i16::MAX).step_by(u16::MAX as usize / 257) {
let value = DataValue::Word(word);
let mut writer = Vec::with_capacity(2);
writer.write_data_value(value).unwrap();
assert_eq!(&writer, &word.to_le_bytes());
}
for longword in (i32::MIN..=i32::MAX).step_by(u32::MAX as usize / 251) {
let value = DataValue::Longword(longword);
let mut writer = Vec::with_capacity(2);
writer.write_data_value(value).unwrap();
assert_eq!(&writer, &longword.to_le_bytes());
}
Implementors§
impl<W: Write + ?Sized> WriteDataValue for W
All types that implement Write
get methods defined in WriteDataValue
for free.