  readRawInto(T& c) {
    SerializationTraits<T>::clear(c);
    const auto pr = readLinearContainerFieldSizeAndInnerType();
    if (pr.first !=
        detail::TypeToField<
            typename SerializationTraits<T>::inner_type>::fieldType) {
      LOG_FIRST_N(ERROR, 100) << "Type mismatch between Linear Container"
                              << " inner type and wire type. Skipping.";
      skipLinearContainerItems(pr);
      return;
    }
    const auto len = pr.second;
    SerializationTraits<T>::reserve(c, len);
    for (size_t i = 0; i < len; ++i) {
      auto inserted = SerializationTraits<T>::emplace(
          c, readRaw<typename SerializationTraits<T>::inner_type>());
      if (!inserted) {
        LOG_FIRST_N(ERROR, 100) << "Item not inserted into container, possibly "
                                << "due to a uniqueness constraint.";
      }
    }
  }
  readRawInto(T& c) {
    SerializationTraits<T>::clear(c);
    const auto pr = readLinearContainerFieldSizeAndInnerType();
    if (pr.first !=
        detail::TypeToField<
            typename SerializationTraits<T>::inner_type>::fieldType) {
      LOG_FIRST_N(ERROR, 100) << "Type mismatch between Linear Container"
                              << " inner type and wire type. Skipping.";
      skipLinearContainerItems(pr);
      return;
    }
    const auto len = pr.second;
    SerializationTraits<T>::reserve(c, len);
    for (size_t i = 0; i < len; ++i) {
      auto inserted = SerializationTraits<T>::emplace(
          c, readRaw<typename SerializationTraits<T>::inner_type>());
      if (!inserted) {
        LOG_FIRST_N(ERROR, 100) << "Item not inserted into container, possibly "
                                << "due to a uniqueness constraint.";
      }
    }
  }