fix: use btree set (#739)
parent
77b9ca3fca
commit
3a41aedda9
|
@ -1,5 +1,5 @@
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
use std::collections::HashSet;
|
use std::collections::BTreeSet;
|
||||||
use std::io::Cursor;
|
use std::io::Cursor;
|
||||||
use std::path::*;
|
use std::path::*;
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ pub type RId = String;
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq)]
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
pub struct ReadDocumentRels {
|
pub struct ReadDocumentRels {
|
||||||
rels: BTreeMap<String, HashSet<(RId, PathBuf, Option<String>)>>,
|
rels: BTreeMap<String, BTreeSet<(RId, PathBuf, Option<String>)>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ReadDocumentRels {
|
impl ReadDocumentRels {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
use std::collections::HashSet;
|
use std::collections::BTreeSet;
|
||||||
use std::io::Cursor;
|
use std::io::Cursor;
|
||||||
use std::path::*;
|
use std::path::*;
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ pub type RId = String;
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Default)]
|
#[derive(Debug, Clone, PartialEq, Default)]
|
||||||
pub struct ReadHeaderOrFooterRels {
|
pub struct ReadHeaderOrFooterRels {
|
||||||
pub rels: BTreeMap<String, HashSet<(RId, PathBuf, Option<String>)>>,
|
pub rels: BTreeMap<String, BTreeSet<(RId, PathBuf, Option<String>)>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ReadHeaderOrFooterRels {
|
impl ReadHeaderOrFooterRels {
|
||||||
|
|
|
@ -2,13 +2,13 @@ use super::*;
|
||||||
use crate::reader::{FromXML, ReaderError};
|
use crate::reader::{FromXML, ReaderError};
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::{
|
use std::{
|
||||||
collections::{BTreeMap, HashSet},
|
collections::{BTreeMap, BTreeSet},
|
||||||
io::Read,
|
io::Read,
|
||||||
path::{Path, PathBuf},
|
path::{Path, PathBuf},
|
||||||
};
|
};
|
||||||
use xml::reader::{EventReader, XmlEvent};
|
use xml::reader::{EventReader, XmlEvent};
|
||||||
|
|
||||||
pub type ReadRels = BTreeMap<String, HashSet<(RId, PathBuf, Option<String>)>>;
|
pub type ReadRels = BTreeMap<String, BTreeSet<(RId, PathBuf, Option<String>)>>;
|
||||||
|
|
||||||
impl FromXML for Rels {
|
impl FromXML for Rels {
|
||||||
fn from_xml<R: Read>(reader: R) -> Result<Self, ReaderError> {
|
fn from_xml<R: Read>(reader: R) -> Result<Self, ReaderError> {
|
||||||
|
@ -60,7 +60,7 @@ pub fn find_rels_filename(main_path: impl AsRef<Path>) -> Result<PathBuf, Reader
|
||||||
|
|
||||||
pub fn read_rels_xml<R: Read>(reader: R, dir: impl AsRef<Path>) -> Result<ReadRels, ReaderError> {
|
pub fn read_rels_xml<R: Read>(reader: R, dir: impl AsRef<Path>) -> Result<ReadRels, ReaderError> {
|
||||||
let mut parser = EventReader::new(reader);
|
let mut parser = EventReader::new(reader);
|
||||||
let mut rels: BTreeMap<String, HashSet<(RId, PathBuf, Option<String>)>> = BTreeMap::new();
|
let mut rels: BTreeMap<String, BTreeSet<(RId, PathBuf, Option<String>)>> = BTreeMap::new();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
let e = parser.next();
|
let e = parser.next();
|
||||||
|
@ -99,7 +99,7 @@ pub fn read_rels_xml<R: Read>(reader: R, dir: impl AsRef<Path>) -> Result<ReadRe
|
||||||
paths.insert((rid, target, target_mode));
|
paths.insert((rid, target, target_mode));
|
||||||
rels.insert(rel_type, paths);
|
rels.insert(rel_type, paths);
|
||||||
} else {
|
} else {
|
||||||
let s: HashSet<(RId, PathBuf, Option<String>)> =
|
let s: BTreeSet<(RId, PathBuf, Option<String>)> =
|
||||||
vec![(rid, target, target_mode)].into_iter().collect();
|
vec![(rid, target, target_mode)].into_iter().collect();
|
||||||
rels.insert(rel_type, s);
|
rels.insert(rel_type, s);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue