cppstreams 1.1.0

C++ streams in rust
Documentation
use std::collections::VecDeque;

use crate::{Endl, IStream, OStream, stringstream::StringStream};

#[test]
#[expect(unused_must_use)]
fn test_istream() {
    let mut data = VecDeque::new();
    data.extend("123".as_bytes());

    let mut num: i32 = 0;

    let din = IStream::new(data);

    din >> &mut num;

    assert_eq!(num, 123)
}

#[test]
#[expect(unused_must_use)]
fn test_ostream() {
    let mut data = Vec::new();

    let out = OStream::new(&mut data);

    out << "Hello, world!" << Endl;

    assert_eq!(&data, b"Hello, world!\n")
}

#[test]
#[expect(unused_must_use)]
fn test_stringstream() {
    let mut str_stream = StringStream::default();

    &mut str_stream << 123;

    let mut num = 0;

    &mut str_stream >> &mut num;

    assert_eq!(num, 123);
    assert_eq!(str_stream.to_string(), "");
}

#[test]
#[expect(unused_must_use)]
fn test_stringstream2() {
    let mut str_stream = StringStream::default();

    &mut str_stream << 123;

    let mut str_stream2 = StringStream::default();

    &mut str_stream >> &mut str_stream2;

    assert_eq!(str_stream.to_string(), "");
    assert_eq!(str_stream2.to_string(), "123");
}

#[test]
#[expect(unused_must_use)]
fn test_stringstream_unicode() {
    let mut str_stream = StringStream::default();

    &mut str_stream << "äöüßÄÖÜẞ\n";

    let mut str_stream2 = String::new();

    &mut str_stream >> &mut str_stream2;

    assert_eq!(str_stream.to_string(), "");
    assert_eq!(str_stream2.as_str(), "äöüßÄÖÜẞ");
}