// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/// Build a collection from an iterator, allocating into a user-supplied allocator.
///
/// The allocator is passed as a smart-pointer-shaped value (for our types,
/// `&'a Arena<A>`). This is the arena-aware counterpart to
/// [`core::iter::FromIterator`]. Implemented for [`Vec`](crate::vec::Vec)
/// and [`String`](crate::strings::String).