Sha256: efd9b30adef0bdb8ea4ebf5af692f1902a6e4a4ac2e074334ec7e3f51b2910b8
Contents?: true
Size: 1.01 KB
Versions: 6
Compression:
Stored size: 1.01 KB
Contents
#include "base64vlq.hpp" namespace Sass { std::string Base64VLQ::encode(const int number) const { std::string encoded = ""; int vlq = to_vlq_signed(number); do { int digit = vlq & VLQ_BASE_MASK; vlq >>= VLQ_BASE_SHIFT; if (vlq > 0) { digit |= VLQ_CONTINUATION_BIT; } encoded += base64_encode(digit); } while (vlq > 0); return encoded; } char Base64VLQ::base64_encode(const int number) const { int index = number; if (index < 0) index = 0; if (index > 63) index = 63; return CHARACTERS[index]; } int Base64VLQ::to_vlq_signed(const int number) const { return (number < 0) ? ((-number) << 1) + 1 : (number << 1) + 0; } const char* Base64VLQ::CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; const int Base64VLQ::VLQ_BASE_SHIFT = 5; const int Base64VLQ::VLQ_BASE = 1 << VLQ_BASE_SHIFT; const int Base64VLQ::VLQ_BASE_MASK = VLQ_BASE - 1; const int Base64VLQ::VLQ_CONTINUATION_BIT = VLQ_BASE; }
Version data entries
6 entries across 6 versions & 1 rubygems