| 48 | // Note: does not store data size! |
| 49 | template <class T> |
| 50 | inline void SaveArrayData(TConstArrayRef<T> data, IBinSaver* binSaver) { |
| 51 | Y_ASSERT(!binSaver->IsReading()); |
| 52 | if (IBinSaver::HasNonTrivialSerializer<T>(0u)) { |
| 53 | for (const auto& element : data) { |
| 54 | binSaver->Add(0, const_cast<T*>(&element)); |
| 55 | } |
| 56 | } else { |
| 57 | binSaver->AddRawData( |
| 58 | 0, |
| 59 | const_cast<void*>((const void*)data.data()), |
| 60 | SafeIntegerCast<i64>(sizeof(T) * data.size()) |
| 61 | ); |
| 62 | } |
| 63 | } |
| 64 | |
| 65 | // Note: does not load data size! |
| 66 | template <class T> |
no test coverage detected