Merge remote-tracking branch 'upstream/main'
This commit is contained in:
commit
aff3520ae2
2 changed files with 17 additions and 10 deletions
16
src/main.rs
16
src/main.rs
|
@ -1,6 +1,6 @@
|
||||||
mod oop;
|
mod oop;
|
||||||
use std::{thread::{self, JoinHandle}, io::Write};
|
use std::{thread::{self, JoinHandle}, io::Write};
|
||||||
use roxmltree::{self, Document};
|
use roxmltree;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let args: Vec<String> = std::env::args().collect();
|
let args: Vec<String> = std::env::args().collect();
|
||||||
|
@ -44,7 +44,7 @@ fn main() {
|
||||||
handle.join().expect("Couldn't close thread.");
|
handle.join().expect("Couldn't close thread.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn new_parse(doc:&Document) -> Result<oop::Family,core::fmt::Error>{
|
fn new_parse(doc:&roxmltree::Document) -> Result<oop::Family,core::fmt::Error>{
|
||||||
let mut wrapped_family:Option<oop::Family> = None;
|
let mut wrapped_family:Option<oop::Family> = None;
|
||||||
let mut messages: oop::Messages = oop::Messages::new(Vec::new(), Vec::new(), Vec::new(), Vec::new(), Vec::new());
|
let mut messages: oop::Messages = oop::Messages::new(Vec::new(), Vec::new(), Vec::new(), Vec::new(), Vec::new());
|
||||||
|
|
||||||
|
@ -57,12 +57,10 @@ fn new_parse(doc:&Document) -> Result<oop::Family,core::fmt::Error>{
|
||||||
},
|
},
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
if let Some(ref mut family) = wrapped_family{
|
|
||||||
for child in root.children(){
|
|
||||||
nested_parse(family, child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if let Some(ref mut family) = wrapped_family{
|
||||||
|
root.children().for_each(|child| nested_parse(family, child));
|
||||||
|
}
|
||||||
root.children().filter(|outer_child| outer_child.tag_name().name() == "MESSAGES" )
|
root.children().filter(|outer_child| outer_child.tag_name().name() == "MESSAGES" )
|
||||||
.for_each(|message_group| {
|
.for_each(|message_group| {
|
||||||
message_group.children().filter(|inner_child| inner_child.tag_name().name() == "MSG")
|
message_group.children().filter(|inner_child| inner_child.tag_name().name() == "MSG")
|
||||||
|
@ -152,7 +150,8 @@ fn nested_parse(input_family:&mut oop::Family, node: roxmltree::Node) {
|
||||||
node.attribute("name").unwrap().to_string(),
|
node.attribute("name").unwrap().to_string(),
|
||||||
node.attribute("minversion").unwrap().to_string(),
|
node.attribute("minversion").unwrap().to_string(),
|
||||||
node.attribute("maxversion").unwrap().to_string(),
|
node.attribute("maxversion").unwrap().to_string(),
|
||||||
Vec::new()
|
Vec::new(),
|
||||||
|
node.attribute("format").unwrap_or("").to_string()
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -238,3 +237,4 @@ fn output(family: oop::Family) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
11
src/oop.rs
11
src/oop.rs
|
@ -152,11 +152,12 @@ pub struct ObjectMember {
|
||||||
minversion: String,
|
minversion: String,
|
||||||
maxversion: String,
|
maxversion: String,
|
||||||
enumerations: Vec<MemberEnumeration>,
|
enumerations: Vec<MemberEnumeration>,
|
||||||
|
format: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ObjectMember {
|
impl ObjectMember {
|
||||||
pub fn new(member_type: String, name: String, minversion: String, maxversion: String, enumerations: Vec<MemberEnumeration>) -> Self {
|
pub fn new(member_type: String, name: String, minversion: String, maxversion: String, enumerations: Vec<MemberEnumeration>, format: String) -> Self {
|
||||||
Self { member_type, name, minversion, maxversion, enumerations }
|
Self { member_type, name, minversion, maxversion, enumerations, format }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_name(&self) -> String{
|
pub fn get_name(&self) -> String{
|
||||||
|
@ -187,6 +188,12 @@ impl ObjectMember {
|
||||||
pub fn push_member_enumeration(&mut self, enumeration: MemberEnumeration) {
|
pub fn push_member_enumeration(&mut self, enumeration: MemberEnumeration) {
|
||||||
self.enumerations.push(enumeration);
|
self.enumerations.push(enumeration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(unused)]
|
||||||
|
pub fn get_format(&mut self) -> &mut String{
|
||||||
|
return &mut self.format
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue