namespace Volpe.Cafe
{
    /// <summary>
    /// Defines a method that allows the elements of an object to be appended to another object of the same type.
    /// </summary>
    public interface IAppendable
    {
        /// <summary>
        /// Resets all elements of the specified <see cref="IAppendable"/> object to their default values (0, false, or
        /// null).
        /// </summary>
        void Clear();

        /// <summary>
        /// Appends all elements from the specified <see cref="IAppendable"/> object to this instance.
        /// </summary>
        /// <param name="value">The value to append to this instance.</param>
        void Append(IAppendable value);

    }
}
