-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
This requires a refactor of build_object_lists. Implement a Visitor patter to:
for config in rust_configs {
match config {
Definition::Service(service) => {
if services.iter().any(|prev| prev.id == service.id) {
return Err(eyre!(
"Found duplicate ID: {}, for Service: {}",
&service.id,
&service.name
));
}
services.push(service)
}
Definition::EndpointSchema(service_name, service_id, endpoint_schema) => {
service_schema_map
.entry((service_name, service_id))
.or_default()
.push(endpoint_schema)
}
Definition::EndpointSchemaList(service_name, service_id, endpoint_schemas) => {
service_schema_map
.entry((service_name, service_id))
.or_default()
.extend(endpoint_schemas)
}
Definition::Enum(enum_type) => enums.push(enum_type),
Definition::EnumList(enum_types) => enums.extend(enum_types),
Definition::RoleList(role_types) => {
enums.extend(role_types);
}
}
}This would also allow to sort endpoints/services in place
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels