История изменений
Исправление DarkEld3r, (текущая версия) :
Трейта для коллекций (чтобы были определены всякие push, pop и т.д.) не существует?
Общего нет, насколько я вижу. Есть только Index для контейнеров поддерживающих обращения по индексу (через скобки []), FromIterator/IntoIterator и Extend.
Потом чуть подумал и понял, что надо, наверное, просто T, но что делать, если мне нужно будет уточнить, например, что должен уметь именно U?
T<U> нельзя, да. Обсуждается и HKT хотят сделать.
UPD: Первый вопрос (если предположить, что нужного трейта нет), наверное, решается макросом.
Оно ещё и решается трейтами FromIterator/IntoIterator - сначала преобразуешь в итератор (IntoIterator), потом делаешь ему rev, потом обратно (FromIterator).
Исходная версия DarkEld3r, :
Трейта для коллекций (чтобы были определены всякие push, pop и т.д.) не существует?
Общего нет, насколько я вижу. Есть только Index для контейнеров поддерживающих обращения по индексу (через скобки []), FromIterator/IntoIterator и Extend. Подозреваю, что тебе нужно как раз последнее - он как раз говорит о том, что туда можно «запихнуть итератор».
Потом чуть подумал и понял, что надо, наверное, просто T, но что делать, если мне нужно будет уточнить, например, что должен уметь именно U?
T<U> нельзя, да. Обсуждается и HKT хотят сделать.
UPD: Первый вопрос (если предположить, что нужного трейта нет), наверное, решается макросом.
Оно ещё и решается трейтами FromIterator/IntoIterator - сначала преобразуешь в итератор (IntoIterator), потом делаешь ему rev, потом обратно (FromIterator).