forked from mirrors/gecko-dev
		
	 1e92070ea4
			
		
	
	
		1e92070ea4
		
	
	
	
	
		
			
			Source-Repo: https://github.com/servo/servo Source-Revision: dcc4697dde3ba8af32e233b302a16bea76af378a --HG-- rename : servo/components/util/linked_list.rs => servo/components/layout/linked_list.rs
		
			
				
	
	
		
			21 lines
		
	
	
	
		
			732 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			732 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| //! Utility functions for doubly-linked lists.
 | |
| 
 | |
| use std::collections::LinkedList;
 | |
| use std::mem;
 | |
| 
 | |
| /// Splits the head off a list in O(1) time, and returns the head.
 | |
| pub fn split_off_head<T>(list: &mut LinkedList<T>) -> LinkedList<T> {
 | |
|     let tail = list.split_off(1);
 | |
|     mem::replace(list, tail)
 | |
| }
 | |
| 
 | |
| /// Prepends the items in the other list to this one, leaving the other list empty.
 | |
| #[inline]
 | |
| pub fn prepend_from<T>(this: &mut LinkedList<T>, other: &mut LinkedList<T>) {
 | |
|     other.append(this);
 | |
|     mem::swap(this, other);
 | |
| }
 |