BitArrayUtility.cpp 641 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright 2017 Huy Cuong Nguyen
  3. */
  4. // SPDX-License-Identifier: Apache-2.0
  5. #include "BitArrayUtility.h"
  6. #include "BitArray.h"
  7. namespace ZXing { namespace Utility {
  8. std::string ToString(const BitArray& arr)
  9. {
  10. return ToString(arr, 'X', '.');
  11. }
  12. std::string ToString(const BitArray& arr, char one, char zero)
  13. {
  14. std::string result;
  15. result.reserve(arr.size());
  16. for (bool bit : arr)
  17. result.push_back(bit ? one : zero);
  18. return result;
  19. }
  20. BitArray ParseBitArray(std::string_view str, char one)
  21. {
  22. BitArray result(Size(str));
  23. for (int i = 0; i < Size(str); ++i)
  24. result.set(i, str[i] == one);
  25. return result;
  26. }
  27. }} // ZXing::Utility