@@ -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">`.
@@ -796,12 +733,6 @@ impl<'a> Deref for BytesText<'a> {
796733 }
797734}
798735
799- impl < ' a > From < BytesStartText < ' a > > for BytesText < ' a > {
800- fn from ( content : BytesStartText < ' a > ) -> Self {
801- content. content
802- }
803- }
804-
805736////////////////////////////////////////////////////////////////////////////////////////////////////
806737
807738/// CDATA content contains unescaped data from the reader. If you want to write them as a text,
@@ -940,56 +871,6 @@ impl<'a> Deref for BytesCData<'a> {
940871/// [`Reader::read_event_into`]: crate::reader::Reader::read_event_into
941872#[ derive( Clone , Debug , Eq , PartialEq ) ]
942873pub enum Event < ' a > {
943- /// Text that appeared before the first opening tag or an [XML declaration].
944- /// [According to the XML standard][std], no text allowed before the XML
945- /// declaration. However, if there is a BOM in the stream, some data may be
946- /// present.
947- ///
948- /// When this event is generated, it is the very first event emitted by the
949- /// [`Reader`], and there can be the only one such event.
950- ///
951- /// The [`Writer`] writes content of this event "as is" without encoding or
952- /// escaping. If you write it, it should be written first and only one time
953- /// (but writer does not enforce that).
954- ///
955- /// # Examples
956- ///
957- /// ```
958- /// # use pretty_assertions::assert_eq;
959- /// use std::borrow::Cow;
960- /// use quick_xml::Reader;
961- /// use quick_xml::events::Event;
962- ///
963- /// // XML in UTF-8 with BOM
964- /// let xml = b"\xEF\xBB\xBF<?xml version='1.0'?>".as_ref();
965- /// let mut reader = Reader::from_reader(xml);
966- /// let mut buf = Vec::new();
967- /// let mut events_processed = 0;
968- /// loop {
969- /// match reader.read_event_into(&mut buf) {
970- /// Ok(Event::StartText(e)) => {
971- /// assert_eq!(events_processed, 0);
972- /// // Content contains BOM
973- /// assert_eq!(e.into_inner(), Cow::Borrowed(b"\xEF\xBB\xBF"));
974- /// }
975- /// Ok(Event::Decl(_)) => {
976- /// assert_eq!(events_processed, 1);
977- /// }
978- /// Ok(Event::Eof) => {
979- /// assert_eq!(events_processed, 2);
980- /// break;
981- /// }
982- /// e => panic!("Unexpected event {:?}", e),
983- /// }
984- /// events_processed += 1;
985- /// }
986- /// ```
987- ///
988- /// [XML declaration]: Event::Decl
989- /// [std]: https://www.w3.org/TR/xml11/#NT-document
990- /// [`Reader`]: crate::reader::Reader
991- /// [`Writer`]: crate::writer::Writer
992- StartText ( BytesStartText < ' a > ) ,
993874 /// Start tag (with attributes) `<tag attr="value">`.
994875 Start ( BytesStart < ' a > ) ,
995876 /// End tag `</tag>`.
@@ -1017,7 +898,6 @@ impl<'a> Event<'a> {
1017898 /// buffer used when reading but incurring a new, separate allocation.
1018899 pub fn into_owned ( self ) -> Event < ' static > {
1019900 match self {
1020- Event :: StartText ( e) => Event :: StartText ( e. into_owned ( ) ) ,
1021901 Event :: Start ( e) => Event :: Start ( e. into_owned ( ) ) ,
1022902 Event :: End ( e) => Event :: End ( e. into_owned ( ) ) ,
1023903 Event :: Empty ( e) => Event :: Empty ( e. into_owned ( ) ) ,
@@ -1035,7 +915,6 @@ impl<'a> Event<'a> {
1035915 #[ inline]
1036916 pub fn borrow ( & self ) -> Event {
1037917 match self {
1038- Event :: StartText ( e) => Event :: StartText ( e. borrow ( ) ) ,
1039918 Event :: Start ( e) => Event :: Start ( e. borrow ( ) ) ,
1040919 Event :: End ( e) => Event :: End ( e. borrow ( ) ) ,
1041920 Event :: Empty ( e) => Event :: Empty ( e. borrow ( ) ) ,
@@ -1055,7 +934,6 @@ impl<'a> Deref for Event<'a> {
1055934
1056935 fn deref ( & self ) -> & [ u8 ] {
1057936 match * self {
1058- Event :: StartText ( ref e) => & * e,
1059937 Event :: Start ( ref e) | Event :: Empty ( ref e) => & * e,
1060938 Event :: End ( ref e) => & * e,
1061939 Event :: Text ( ref e) => & * e,
0 commit comments