Skip to content

Commit 271ba65

Browse files
authored
feat(value)!: Adds functions to XmlSeq that give access to inner VecDeque. (#126)
1 parent bbe4652 commit 271ba65

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

xmlity/src/value/mod.rs

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ use core::{
99
fmt::{self, Debug},
1010
str,
1111
};
12-
use std::{borrow::Cow, collections::VecDeque, fmt::Formatter, iter, ops::Deref};
12+
use std::{
13+
borrow::Cow,
14+
collections::VecDeque,
15+
fmt::Formatter,
16+
iter,
17+
ops::{Deref, DerefMut},
18+
};
1319

1420
use crate::{
1521
de,
@@ -352,13 +358,28 @@ impl<T> XmlSeq<T> {
352358
Self::from_vec_deque(VecDeque::new())
353359
}
354360

355-
fn from_vec_deque(values: VecDeque<T>) -> Self {
361+
/// Creates a new sequence from a [`VecDeque<T>`].
362+
pub fn from_vec_deque(values: VecDeque<T>) -> Self {
356363
Self { values }
357364
}
358365

359-
/// Pushes a value onto the sequence.
360-
pub fn push(&mut self, value: T) {
361-
self.values.push_back(value);
366+
/// Gets the inner [`VecDeque<T>`] of the sequence.
367+
pub fn into_inner(self) -> VecDeque<T> {
368+
self.values
369+
}
370+
}
371+
372+
impl Deref for XmlSeq<XmlValue> {
373+
type Target = VecDeque<XmlValue>;
374+
375+
fn deref(&self) -> &Self::Target {
376+
&self.values
377+
}
378+
}
379+
380+
impl DerefMut for XmlSeq<XmlValue> {
381+
fn deref_mut(&mut self) -> &mut Self::Target {
382+
&mut self.values
362383
}
363384
}
364385

0 commit comments

Comments
 (0)