Skip to content
Snippets Groups Projects
Select Git revision
  • 8b128d10587fe023c89bd54b96fb67929c05550e
  • main default protected
  • update_2024
  • fix_formatting
4 results

main.rs

Blame
  • Forked from orestis.malaspin / rust-101
    Source project has a limited visibility.
    main.rs 1.25 KiB
    use linked_list::immutable_linked_list::LinkedList as ImmutableList;
    use linked_list::safe_linked_list::LinkedList as SafeList;
    use linked_list::unsafe_linked_list::LinkedList as UnsafeList;
    
    fn create_lists() -> (ImmutableList, SafeList, UnsafeList) {
        (ImmutableList::new(), SafeList::new(), UnsafeList::new())
    }
    
    fn main() {
        let (immutable_list, mut safe_list, mut unsafe_list) = create_lists();
    
        // Populate lists
        let immutable_list = immutable_list.push(1);
        let immutable_list = immutable_list.push(2);
        let immutable_list = immutable_list.push(3);
    
        safe_list.push(1);
        safe_list.push(2);
        safe_list.push(3);
    
        unsafe_list.push(1);
        unsafe_list.push(2);
        unsafe_list.push(3);
    
        let (i_val, immutable_list) = immutable_list.pop();
        let s_val = safe_list.pop();
        let u_val = unsafe_list.pop();
    
        assert_eq!(i_val, s_val);
        assert_eq!(i_val, u_val);
        assert_eq!(s_val, u_val);
    
        let immutable_list = immutable_list.push(4);
        safe_list.push(4);
        unsafe_list.push(4);
    
        immutable_list.print();
        safe_list.print();
        unsafe_list.print();
    
        for j in 1..1000 {
            let mut ul = UnsafeList::new();
            for i in 1..1_000_000 {
                ul.push(i);
            }
        }
    
        unsafe_list.print();
    }