blob: 3208f0901307a035f91926e4558d02265dc99822 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "simple_token.h"
#include <ostream>
#include <random>
namespace base {
constexpr size_t kRandomTokenLength = 10;
SimpleToken::SimpleToken(const std::string& token) : token_(token) {}
// static
SimpleToken SimpleToken::Create() {
const char charset[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
const size_t max_index = (sizeof(charset) - 1);
std::string str;
for (size_t i = 0; i < kRandomTokenLength; i++) {
str.push_back(charset[rand() % max_index]);
}
return SimpleToken(str);
}
std::ostream& operator<<(std::ostream& out, const SimpleToken& token) {
return out << "(" << token.ToString() << ")";
}
std::optional<base::SimpleToken> ValueToSimpleToken(std::string str) {
return std::make_optional<base::SimpleToken>(str);
}
std::string SimpleTokenToValue(const SimpleToken& token) {
return token.ToString();
}
size_t SimpleTokenHash(const SimpleToken& SimpleToken) {
return std::hash<std::string>()(SimpleToken.ToString());
}
} // namespace base