99
1010#[ macro_use]
1111extern crate html5ever;
12+ extern crate markup5ever_rcdom as rcdom;
1213
1314use std:: default:: Default ;
1415
1516use html5ever:: driver:: ParseOpts ;
16- use html5ever:: rcdom:: RcDom ;
1717use html5ever:: serialize:: { Serialize , SerializeOpts , Serializer , TraversalScope } ;
1818use html5ever:: tendril:: { SliceExt , StrTendril , TendrilSink } ;
1919use html5ever:: tokenizer:: { TagKind , Token , TokenSink , TokenSinkResult , Tokenizer } ;
2020use html5ever:: { parse_document, parse_fragment, serialize, QualName } ;
21+ use rcdom:: { RcDom , SerializableHandle } ;
2122
2223use std:: io;
2324
@@ -98,10 +99,10 @@ fn parse_and_serialize(input: StrTendril) -> StrTendril {
9899 vec ! [ ] ,
99100 )
100101 . one ( input) ;
101- let inner = & dom. document . children . borrow ( ) [ 0 ] ;
102+ let inner: SerializableHandle = dom. document . children . borrow ( ) [ 0 ] . clone ( ) . into ( ) ;
102103
103104 let mut result = vec ! [ ] ;
104- serialize ( & mut result, inner, Default :: default ( ) ) . unwrap ( ) ;
105+ serialize ( & mut result, & inner, Default :: default ( ) ) . unwrap ( ) ;
105106 StrTendril :: try_from_byte_slice ( & result) . unwrap ( )
106107}
107108
@@ -242,7 +243,8 @@ fn doctype() {
242243 let dom = parse_document ( RcDom :: default ( ) , ParseOpts :: default ( ) ) . one ( "<!doctype html>" ) ;
243244 dom. document . children . borrow_mut ( ) . truncate ( 1 ) ; // Remove <html>
244245 let mut result = vec ! [ ] ;
245- serialize ( & mut result, & dom. document , Default :: default ( ) ) . unwrap ( ) ;
246+ let document: SerializableHandle = dom. document . clone ( ) . into ( ) ;
247+ serialize ( & mut result, & document, Default :: default ( ) ) . unwrap ( ) ;
246248 assert_eq ! ( String :: from_utf8( result) . unwrap( ) , "<!DOCTYPE html>" ) ;
247249}
248250
@@ -259,6 +261,7 @@ fn deep_tree() {
259261 let document = & dom. document ;
260262 let opts = SerializeOpts :: default ( ) ;
261263 let mut ret_val = Vec :: new ( ) ;
262- serialize ( & mut ret_val, document, opts)
264+ let document: SerializableHandle = dom. document . clone ( ) . into ( ) ;
265+ serialize ( & mut ret_val, & document, opts)
263266 . expect ( "Writing to a string shouldn't fail (expect on OOM)" ) ;
264267}
0 commit comments