mirror of
https://github.com/pcvolkmer/osc-variant.git
synced 2025-04-19 19:56:50 +00:00
Sort dependencies and requirements
This commit is contained in:
parent
8cae6ce706
commit
d0de76770f
@ -102,7 +102,8 @@ impl Comparable for DataCatalogue {
|
|||||||
|
|
||||||
impl Requires for DataCatalogue {
|
impl Requires for DataCatalogue {
|
||||||
fn get_required_entries<'a>(&'a self, all: &'a OnkostarEditor) -> Vec<Requirement> {
|
fn get_required_entries<'a>(&'a self, all: &'a OnkostarEditor) -> Vec<Requirement> {
|
||||||
self.entries
|
let mut result = self
|
||||||
|
.entries
|
||||||
.entry
|
.entry
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|&entry| entry.property_catalogue.is_some())
|
.filter(|&entry| entry.property_catalogue.is_some())
|
||||||
@ -116,7 +117,10 @@ impl Requires for DataCatalogue {
|
|||||||
Some(contained) => Requirement::PropertyCatalogue(contained),
|
Some(contained) => Requirement::PropertyCatalogue(contained),
|
||||||
None => Requirement::ExternalPropertyCatalogue(entry),
|
None => Requirement::ExternalPropertyCatalogue(entry),
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>()
|
.collect::<Vec<_>>();
|
||||||
|
result.sort_unstable_by_key(|item| item.sorting_key());
|
||||||
|
|
||||||
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
fn to_requirement_string<'a>(&'a self, all: &'a OnkostarEditor) -> String {
|
fn to_requirement_string<'a>(&'a self, all: &'a OnkostarEditor) -> String {
|
||||||
|
@ -267,6 +267,7 @@ impl Requires for DataForm {
|
|||||||
None => Requirement::ExternalDataCatalogue(entry.to_string()),
|
None => Requirement::ExternalDataCatalogue(entry.to_string()),
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
result.sort_unstable_by_key(|item| item.sorting_key());
|
||||||
|
|
||||||
let referenced_forms = &mut self
|
let referenced_forms = &mut self
|
||||||
.entries
|
.entries
|
||||||
@ -287,6 +288,7 @@ impl Requires for DataForm {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
referenced_forms.sort_unstable_by_key(|item| item.sorting_key());
|
||||||
result.append(referenced_forms);
|
result.append(referenced_forms);
|
||||||
|
|
||||||
let sub_forms = &mut self
|
let sub_forms = &mut self
|
||||||
@ -308,6 +310,7 @@ impl Requires for DataForm {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
sub_forms.sort_unstable_by_key(|item| item.sorting_key());
|
||||||
result.append(sub_forms);
|
result.append(sub_forms);
|
||||||
|
|
||||||
result
|
result
|
||||||
|
@ -27,7 +27,7 @@ use crate::model::data_form::DataForm;
|
|||||||
use crate::model::onkostar_editor::OnkostarEditor;
|
use crate::model::onkostar_editor::OnkostarEditor;
|
||||||
use crate::model::property_catalogue::PropertyCatalogue;
|
use crate::model::property_catalogue::PropertyCatalogue;
|
||||||
use crate::model::unterformular::Unterformular;
|
use crate::model::unterformular::Unterformular;
|
||||||
use crate::model::Listable;
|
use crate::model::{Comparable, Listable, Sortable};
|
||||||
|
|
||||||
#[allow(clippy::enum_variant_names)]
|
#[allow(clippy::enum_variant_names)]
|
||||||
pub enum Requirement<'a> {
|
pub enum Requirement<'a> {
|
||||||
@ -48,6 +48,25 @@ pub enum Requirement<'a> {
|
|||||||
ExternalUnterformularSubform(String),
|
ExternalUnterformularSubform(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Sortable for Requirement<'_> {
|
||||||
|
fn sorting_key(&self) -> String {
|
||||||
|
match self {
|
||||||
|
Requirement::PropertyCatalogue(item) => item.get_name(),
|
||||||
|
Requirement::DataCatalogue(item) => item.get_name(),
|
||||||
|
Requirement::DataFormReference(item) => item.get_name(),
|
||||||
|
Requirement::UnterformularReference(item) => item.get_name(),
|
||||||
|
Requirement::DataFormSubform(item) => item.get_name(),
|
||||||
|
Requirement::UnterformularSubform(item) => item.get_name(),
|
||||||
|
Requirement::ExternalPropertyCatalogue(name)
|
||||||
|
| Requirement::ExternalDataCatalogue(name)
|
||||||
|
| Requirement::ExternalDataFormReference(name)
|
||||||
|
| Requirement::ExternalDataFormSubform(name)
|
||||||
|
| Requirement::ExternalUnterformularReference(name)
|
||||||
|
| Requirement::ExternalUnterformularSubform(name) => name.to_string(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl ToString for Requirement<'_> {
|
impl ToString for Requirement<'_> {
|
||||||
fn to_string(&self) -> String {
|
fn to_string(&self) -> String {
|
||||||
match self {
|
match self {
|
||||||
|
@ -271,6 +271,7 @@ impl Requires for Unterformular {
|
|||||||
None => Requirement::ExternalDataCatalogue(entry.to_string()),
|
None => Requirement::ExternalDataCatalogue(entry.to_string()),
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
result.sort_unstable_by_key(|item| item.sorting_key());
|
||||||
|
|
||||||
let referenced_forms = &mut self
|
let referenced_forms = &mut self
|
||||||
.entries
|
.entries
|
||||||
@ -291,6 +292,7 @@ impl Requires for Unterformular {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
referenced_forms.sort_unstable_by_key(|item| item.sorting_key());
|
||||||
result.append(referenced_forms);
|
result.append(referenced_forms);
|
||||||
|
|
||||||
let sub_forms = &mut self
|
let sub_forms = &mut self
|
||||||
@ -312,6 +314,7 @@ impl Requires for Unterformular {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
sub_forms.sort_unstable_by_key(|item| item.sorting_key());
|
||||||
result.append(sub_forms);
|
result.append(sub_forms);
|
||||||
|
|
||||||
result
|
result
|
||||||
|
Loading…
x
Reference in New Issue
Block a user