File indexing completed on 2024-05-12 05:29:23

0001 /*
0002  *   SPDX-FileCopyrightText: 2012-2016 Ivan Cukic <ivan.cukic@kde.org>
0003  *
0004  *   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 namespace kamd
0010 {
0011 namespace utils
0012 {
0013 template<typename Container>
0014 inline void merge_into(Container &into, const Container &from)
0015 {
0016     typename Container::iterator into_begin = into.begin();
0017     typename Container::iterator into_end = into.end();
0018     typename Container::const_iterator from_begin = from.begin();
0019     typename Container::const_iterator from_end = from.end();
0020 
0021     while (from_begin != from_end) {
0022         while (into_begin != into_end && *from_begin >= *into_begin)
0023             into_begin++;
0024 
0025         into_begin = into.insert(into_begin, *from_begin);
0026         into_begin++;
0027         from_begin++;
0028     }
0029 }
0030 
0031 } // namespace utils
0032 } // namespace kamd