// None indicates a General change needed
None indicates a General change needed
None indicates a General change needed
fn calculate_instance_config_events<T: InstanceConfig>(
    old: &T,
    new: &T,
) -> Option<Vec<ConfigChange>> {
    if !old.equal_without_service(new) {
        return None;
    }
    let old = old.get_services();
    let new = new.get_services();
    let mut v = vec![];
    v.append(&mut calculate_service_delete_events::<T>(old, new));
    v.append(&mut calculate_service_add_events(old, new));
    Some(v.into_iter().map(ConfigChange::ServiceChange).collect())
}
fn calculate_instance_config_events < T : InstanceConfig > ( old : & T , new : & T , ) -> Option < Vec < ConfigChange > > { if ! old . equal_without_service ( new ) { return None ; } let old = old . get_services ( ) ; let new = new . get_services ( ) ; let mut v = vec ! [ ] ; v . append ( & mut calculate_service_delete_events :: < T > ( old , new ) ) ; v . append ( & mut calculate_service_add_events ( old , new ) ) ; Some ( v . into_iter ( ) . map ( ConfigChange :: ServiceChange ) . collect ( ) ) }
None indicates a General change needed
None indicates a General change needed
old
&T
new
&T