private static void ValidateDescriptionWithMeaningfulMessages(AtomicQueueDescription description)
 {
     if (description.Root == null)
     {
         throw new ArgumentException("Invalid description", nameof(description));
     }
 }
 /// <summary>
 /// Creates an AtomicQueue<T> wrapping the data contained in the description.
 /// </summary>
 /// <remarks>This does not copy any data from the description.</remarks>
 /// <param name="description">The description</param>
 /// <returns>An AtomicQueue<T> wrapping the data contained in the description</returns>
 public static AtomicQueue <T> FromDescription(AtomicQueueDescription description)
 {
     ValidateDescription(description);
     return(new AtomicQueue <T>
     {
         m_Root = description.Root,
         m_FreeList = description.FreeList,
     });
 }