MCPcopy Create free account
hub / github.com/chatmail/core / parse_xml_reader

Function parse_xml_reader

src/configure/auto_mozilla.rs:139–173  ·  view source on GitHub ↗
(
    reader: &mut quick_xml::Reader<B>,
)

Source from the content-addressed store, hash-verified

137}
138
139fn parse_xml_reader<B: BufRead>(
140 reader: &mut quick_xml::Reader<B>,
141) -> Result<MozAutoconfigure, quick_xml::Error> {
142 let mut incoming_servers = Vec::new();
143 let mut outgoing_servers = Vec::new();
144
145 let mut buf = Vec::new();
146 loop {
147 match reader.read_event_into(&mut buf)? {
148 Event::Start(ref event) => {
149 let tag = String::from_utf8_lossy(event.name().as_ref())
150 .trim()
151 .to_lowercase();
152
153 if tag == "incomingserver" {
154 if let Some(incoming_server) = parse_server(reader, event)? {
155 incoming_servers.push(incoming_server);
156 }
157 } else if tag == "outgoingserver"
158 && let Some(outgoing_server) = parse_server(reader, event)?
159 {
160 outgoing_servers.push(outgoing_server);
161 }
162 }
163 Event::Eof => break,
164 _ => (),
165 }
166 buf.clear();
167 }
168
169 Ok(MozAutoconfigure {
170 incoming_servers,
171 outgoing_servers,
172 })
173}
174
175/// Parses XML and fills in address and domain placeholders.
176fn parse_xml_with_address(in_emailaddr: &str, xml_raw: &str) -> Result<MozAutoconfigure, Error> {

Callers 1

parse_xml_with_addressFunction · 0.70

Calls 3

parse_serverFunction · 0.85
as_refMethod · 0.45
nameMethod · 0.45

Tested by

no test coverage detected