@@ -50,69 +50,6 @@ use crate::name::{LocalName, QName};
5050use crate :: utils:: write_cow_string;
5151use attributes:: { Attribute , Attributes } ;
5252
53- /// Text that appeared before an XML declaration, a start element or a comment.
54- ///
55- /// In well-formed XML it could contain a Byte-Order-Mark (BOM). If this event
56- /// contains something else except BOM, the XML should be considered ill-formed.
57- ///
58- /// This is a reader-only event. If you need to write a text before the first tag,
59- /// use the [`BytesText`] event.
60- #[ derive( Debug , Clone , Eq , PartialEq ) ]
61- pub struct BytesStartText < ' a > {
62- content : BytesText < ' a > ,
63- }
64-
65- impl < ' a > BytesStartText < ' a > {
66- /// Converts the event into an owned event.
67- pub fn into_owned ( self ) -> BytesStartText < ' static > {
68- BytesStartText {
69- content : self . content . into_owned ( ) ,
70- }
71- }
72-
73- /// Extracts the inner `Cow` from the `BytesStartText` event container.
74- #[ inline]
75- pub fn into_inner ( self ) -> Cow < ' a , [ u8 ] > {
76- self . content . into_inner ( )
77- }
78-
79- /// Converts the event into a borrowed event.
80- #[ inline]
81- pub fn borrow ( & self ) -> BytesStartText {
82- BytesStartText {
83- content : self . content . borrow ( ) ,
84- }
85- }
86-
87- /// Decodes bytes of event, stripping byte order mark (BOM) if it is presented
88- /// in the event.
89- ///
90- /// This method does not unescapes content, because no escape sequences can
91- /// appeared in the BOM or in the text before the first tag.
92- pub fn decode_with_bom_removal ( & self ) -> Result < String > {
93- //TODO: Fix lifetime issue - it should be possible to borrow string
94- let decoded = self . content . decoder . decode_with_bom_removal ( & * self ) ?;
95-
96- Ok ( decoded. to_string ( ) )
97- }
98- }
99-
100- impl < ' a > Deref for BytesStartText < ' a > {
101- type Target = BytesText < ' a > ;
102-
103- fn deref ( & self ) -> & Self :: Target {
104- & self . content
105- }
106- }
107-
108- impl < ' a > From < BytesText < ' a > > for BytesStartText < ' a > {
109- fn from ( content : BytesText < ' a > ) -> Self {
110- Self { content }
111- }
112- }
113-
114- ////////////////////////////////////////////////////////////////////////////////////////////////////
115-
11653/// Opening tag data (`Event::Start`), with optional attributes.
11754///
11855/// `<name attr="value">`.
@@ -794,12 +731,6 @@ impl<'a> Deref for BytesText<'a> {
794731 }
795732}
796733
797- impl < ' a > From < BytesStartText < ' a > > for BytesText < ' a > {
798- fn from ( content : BytesStartText < ' a > ) -> Self {
799- content. content
800- }
801- }
802-
803734////////////////////////////////////////////////////////////////////////////////////////////////////
804735
805736/// CDATA content contains unescaped data from the reader. If you want to write them as a text,
@@ -938,56 +869,6 @@ impl<'a> Deref for BytesCData<'a> {
938869/// [`Reader::read_event_into`]: crate::reader::Reader::read_event_into
939870#[ derive( Clone , Debug , Eq , PartialEq ) ]
940871pub enum Event < ' a > {
941- /// Text that appeared before the first opening tag or an [XML declaration].
942- /// [According to the XML standard][std], no text allowed before the XML
943- /// declaration. However, if there is a BOM in the stream, some data may be
944- /// present.
945- ///
946- /// When this event is generated, it is the very first event emitted by the
947- /// [`Reader`], and there can be the only one such event.
948- ///
949- /// The [`Writer`] writes content of this event "as is" without encoding or
950- /// escaping. If you write it, it should be written first and only one time
951- /// (but writer does not enforce that).
952- ///
953- /// # Examples
954- ///
955- /// ```
956- /// # use pretty_assertions::assert_eq;
957- /// use std::borrow::Cow;
958- /// use quick_xml::Reader;
959- /// use quick_xml::events::Event;
960- ///
961- /// // XML in UTF-8 with BOM
962- /// let xml = b"\xEF\xBB\xBF<?xml version='1.0'?>".as_ref();
963- /// let mut reader = Reader::from_reader(xml);
964- /// let mut buf = Vec::new();
965- /// let mut events_processed = 0;
966- /// loop {
967- /// match reader.read_event_into(&mut buf) {
968- /// Ok(Event::StartText(e)) => {
969- /// assert_eq!(events_processed, 0);
970- /// // Content contains BOM
971- /// assert_eq!(e.into_inner(), Cow::Borrowed(b"\xEF\xBB\xBF"));
972- /// }
973- /// Ok(Event::Decl(_)) => {
974- /// assert_eq!(events_processed, 1);
975- /// }
976- /// Ok(Event::Eof) => {
977- /// assert_eq!(events_processed, 2);
978- /// break;
979- /// }
980- /// e => panic!("Unexpected event {:?}", e),
981- /// }
982- /// events_processed += 1;
983- /// }
984- /// ```
985- ///
986- /// [XML declaration]: Event::Decl
987- /// [std]: https://www.w3.org/TR/xml11/#NT-document
988- /// [`Reader`]: crate::reader::Reader
989- /// [`Writer`]: crate::writer::Writer
990- StartText ( BytesStartText < ' a > ) ,
991872 /// Start tag (with attributes) `<tag attr="value">`.
992873 Start ( BytesStart < ' a > ) ,
993874 /// End tag `</tag>`.
@@ -1015,7 +896,6 @@ impl<'a> Event<'a> {
1015896 /// buffer used when reading but incurring a new, separate allocation.
1016897 pub fn into_owned ( self ) -> Event < ' static > {
1017898 match self {
1018- Event :: StartText ( e) => Event :: StartText ( e. into_owned ( ) ) ,
1019899 Event :: Start ( e) => Event :: Start ( e. into_owned ( ) ) ,
1020900 Event :: End ( e) => Event :: End ( e. into_owned ( ) ) ,
1021901 Event :: Empty ( e) => Event :: Empty ( e. into_owned ( ) ) ,
@@ -1033,7 +913,6 @@ impl<'a> Event<'a> {
1033913 #[ inline]
1034914 pub fn borrow ( & self ) -> Event {
1035915 match self {
1036- Event :: StartText ( e) => Event :: StartText ( e. borrow ( ) ) ,
1037916 Event :: Start ( e) => Event :: Start ( e. borrow ( ) ) ,
1038917 Event :: End ( e) => Event :: End ( e. borrow ( ) ) ,
1039918 Event :: Empty ( e) => Event :: Empty ( e. borrow ( ) ) ,
@@ -1053,7 +932,6 @@ impl<'a> Deref for Event<'a> {
1053932
1054933 fn deref ( & self ) -> & [ u8 ] {
1055934 match * self {
1056- Event :: StartText ( ref e) => & * e,
1057935 Event :: Start ( ref e) | Event :: Empty ( ref e) => & * e,
1058936 Event :: End ( ref e) => & * e,
1059937 Event :: Text ( ref e) => & * e,
0 commit comments