use napi_derive::napi;
use crate::binary::BinaryStream;
use crate::types::VarInt;
#[napi]
pub struct ZigZag {}
#[napi]
impl ZigZag {
#[napi]
pub fn read(stream: &mut BinaryStream) -> i32 {
let value = VarInt::read(stream);
return ((value >> 1) as i32) ^ (-((value & 1) as i32))
}
#[napi]
pub fn write(stream: &mut BinaryStream, value: i32) {
let value = ((value << 1) ^ (value >> 31)) as u32;
VarInt::write(stream, value);
}
}