ttvm 0.1.6

Runtime and compiler infrastructure for Rust
Documentation
pub mod mem;
pub mod byte;

pub use mem::*;
pub use byte::*;

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_mut() {
        fn test_new() {
            let mut mutable = Mut::new(10);

            for i in 0..10 {
                assert_eq!(match mutable.get(i) {
                    Some(some) => *some,
                    None => panic!("value of index {} is 'None'", i)
                }, 0);
            }

            assert_eq!(mutable.get(10), None);

            for i in 0..10 {
                match mutable.get_mut(i) {
                    Some(some) => *some = 1,
                    None => panic!("value of index {} is 'None'", i)
                }
            }

            for i in 0..10 {
                assert_eq!(match mutable.get(i) {
                    Some(some) => *some,
                    None => panic!("value of index {} is 'None'", i)
                }, 1);
            }

            assert_eq!(mutable.get_mut(10), None);
            assert_eq!(mutable.len(), 10);
            assert_eq!(mutable.clone_into_vec(), vec![1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);
        }

        fn test_from() {
            let mut mutable = Mut::from(vec![0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);

            for i in 0..10 {
                assert_eq!(match mutable.get(i) {
                    Some(some) => *some,
                    None => panic!("value of index {} is 'None'", i)
                }, 0);
            }

            assert_eq!(mutable.get(10), None);

            for i in 0..10 {
                match mutable.get_mut(i) {
                    Some(some) => *some = 1,
                    None => panic!("value of index {} is 'None'", i)
                }
            }

            for i in 0..10 {
                assert_eq!(match mutable.get(i) {
                    Some(some) => *some,
                    None => panic!("value of index {} is 'None'", i)
                }, 1);
            }

            assert_eq!(mutable.get_mut(10), None);
            assert_eq!(mutable.len(), 10);
            assert_eq!(mutable.clone_into_vec(), vec![1, 1, 1, 1, 1, 1, 1, 1, 1, 1]);
        }

        test_new();
        test_from();
    }

    #[test]
    fn test_immut() {
        fn test_new() {
            let immutable = Immut::new(10);

            for i in 0..10 {
                assert_eq!(match immutable.get(i) {
                    Some(some) => *some,
                    None => panic!("value of index {} is 'None'", i)
                }, 0);
            }

            assert_eq!(immutable.get(10), None);
            assert_eq!(immutable.len(), 10);
            assert_eq!(immutable.clone_into_vec(), vec![0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
        }

        fn test_from() {
            let immutable = Immut::from(vec![0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);

            for i in 0..10 {
                assert_eq!(match immutable.get(i) {
                    Some(some) => *some,
                    None => panic!("value of index {} is 'None'", i)
                }, 0);
            }

            assert_eq!(immutable.get(10), None);
            assert_eq!(immutable.len(), 10);
            assert_eq!(immutable.clone_into_vec(), vec![0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
        }

        test_new();
        test_from();
    }
}