aboutsummaryrefslogtreecommitdiffstats
path: root/components/util/linked_list.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/util/linked_list.rs')
-rw-r--r--components/util/linked_list.rs73
1 files changed, 0 insertions, 73 deletions
diff --git a/components/util/linked_list.rs b/components/util/linked_list.rs
index bf20f434d54..5114f02c0e4 100644
--- a/components/util/linked_list.rs
+++ b/components/util/linked_list.rs
@@ -4,81 +4,8 @@
//! Utility functions for doubly-linked lists.
-use mem::HeapSizeOf;
-
-use serde::de::{Error, SeqVisitor, Visitor};
-use serde::ser::impls::SeqIteratorVisitor;
-use serde::{Deserialize, Deserializer, Serialize, Serializer};
use std::collections::LinkedList;
-use std::marker::PhantomData;
use std::mem;
-use std::ops::{Deref, DerefMut};
-
-pub struct SerializableLinkedList<T>(LinkedList<T>);
-
-impl<T> SerializableLinkedList<T> {
- pub fn new(linked_list: LinkedList<T>) -> SerializableLinkedList<T> {
- SerializableLinkedList(linked_list)
- }
-}
-
-impl<T> Deref for SerializableLinkedList<T> {
- type Target = LinkedList<T>;
-
- fn deref(&self) -> &LinkedList<T> {
- &self.0
- }
-}
-
-impl<T> DerefMut for SerializableLinkedList<T> {
- fn deref_mut(&mut self) -> &mut LinkedList<T> {
- &mut self.0
- }
-}
-
-impl<T: HeapSizeOf> HeapSizeOf for SerializableLinkedList<T> {
- fn heap_size_of_children(&self) -> usize {
- self.0.heap_size_of_children()
- }
-}
-
-impl<T> Serialize for SerializableLinkedList<T> where T: Serialize {
- fn serialize<S>(&self, serializer: &mut S) -> Result<(), S::Error> where S: Serializer {
- serializer.visit_seq(SeqIteratorVisitor::new(self.0.iter(), Some(self.0.len())))
- }
-}
-
-impl<T> Deserialize for SerializableLinkedList<T> where T: Deserialize {
- fn deserialize<D>(deserializer: &mut D) -> Result<SerializableLinkedList<T>, D::Error>
- where D: Deserializer {
- struct SerializableLinkedListVisitor<T> {
- marker: PhantomData<T>,
- }
-
- impl<T> Visitor for SerializableLinkedListVisitor<T> where T: Deserialize {
- type Value = SerializableLinkedList<T>;
-
- #[inline]
- fn visit_seq<V>(&mut self, mut visitor: V)
- -> Result<SerializableLinkedList<T>, V::Error>
- where V: SeqVisitor {
- let mut list = LinkedList::new();
- for _ in 0..visitor.size_hint().0 {
- match try!(visitor.visit()) {
- Some(element) => list.push_back(element),
- None => return Err(Error::end_of_stream_error()),
- }
- }
- try!(visitor.end());
- Ok(SerializableLinkedList(list))
- }
- }
-
- deserializer.visit_seq(SerializableLinkedListVisitor {
- marker: PhantomData,
- })
- }
-}
/// 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> {