Serialize.h 507 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * Copyright (c) 2021, Jan de Visser <jan@de-visser.net>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/ByteBuffer.h>
  8. #include <string.h>
  9. namespace SQL {
  10. template<typename T>
  11. void deserialize_from(ByteBuffer& buffer, size_t& at_offset, T& t)
  12. {
  13. auto ptr = buffer.offset_pointer((int)at_offset);
  14. memcpy(&t, ptr, sizeof(T));
  15. at_offset += sizeof(T);
  16. }
  17. template<typename T>
  18. void serialize_to(ByteBuffer& buffer, T const& t)
  19. {
  20. buffer.append(&t, sizeof(T));
  21. }
  22. }