blob: 7f8efb8454393e2364bd6fd0088845d2f3bc00a8 [file] [log] [blame]
// Copyright 2017 The Chromium 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 "services/preferences/public/cpp/preferences_mojom_traits.h"
namespace mojo {
using PrefStoreType = prefs::mojom::PrefStoreType;
PrefStoreType EnumTraits<PrefStoreType, PrefValueStore::PrefStoreType>::ToMojom(
PrefValueStore::PrefStoreType input) {
switch (input) {
case PrefValueStore::INVALID_STORE:
break;
case PrefValueStore::MANAGED_STORE:
return PrefStoreType::MANAGED;
case PrefValueStore::SUPERVISED_USER_STORE:
return PrefStoreType::SUPERVISED_USER;
case PrefValueStore::EXTENSION_STORE:
return PrefStoreType::EXTENSION;
case PrefValueStore::COMMAND_LINE_STORE:
return PrefStoreType::COMMAND_LINE;
case PrefValueStore::USER_STORE:
return PrefStoreType::USER;
case PrefValueStore::RECOMMENDED_STORE:
return PrefStoreType::RECOMMENDED;
case PrefValueStore::DEFAULT_STORE:
return PrefStoreType::DEFAULT;
}
NOTREACHED();
return {};
}
bool EnumTraits<PrefStoreType, PrefValueStore::PrefStoreType>::FromMojom(
PrefStoreType input,
PrefValueStore::PrefStoreType* output) {
switch (input) {
case PrefStoreType::MANAGED:
*output = PrefValueStore::MANAGED_STORE;
return true;
case PrefStoreType::SUPERVISED_USER:
*output = PrefValueStore::SUPERVISED_USER_STORE;
return true;
case PrefStoreType::EXTENSION:
*output = PrefValueStore::EXTENSION_STORE;
return true;
case PrefStoreType::COMMAND_LINE:
*output = PrefValueStore::COMMAND_LINE_STORE;
return true;
case PrefStoreType::USER:
*output = PrefValueStore::USER_STORE;
return true;
case PrefStoreType::RECOMMENDED:
*output = PrefValueStore::RECOMMENDED_STORE;
return true;
case PrefStoreType::DEFAULT:
*output = PrefValueStore::DEFAULT_STORE;
return true;
}
return false;
}
using MojomReadError = prefs::mojom::PersistentPrefStoreConnection_ReadError;
MojomReadError
EnumTraits<MojomReadError, PersistentPrefStore::PrefReadError>::ToMojom(
PersistentPrefStore::PrefReadError input) {
switch (input) {
case PersistentPrefStore::PREF_READ_ERROR_NONE:
return MojomReadError::NONE;
case PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE:
return MojomReadError::JSON_PARSE;
case PersistentPrefStore::PREF_READ_ERROR_JSON_TYPE:
return MojomReadError::JSON_TYPE;
case PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED:
return MojomReadError::ACCESS_DENIED;
case PersistentPrefStore::PREF_READ_ERROR_FILE_OTHER:
return MojomReadError::FILE_OTHER;
case PersistentPrefStore::PREF_READ_ERROR_FILE_LOCKED:
return MojomReadError::FILE_LOCKED;
case PersistentPrefStore::PREF_READ_ERROR_NO_FILE:
return MojomReadError::NO_FILE;
case PersistentPrefStore::PREF_READ_ERROR_JSON_REPEAT:
return MojomReadError::JSON_REPEAT;
case PersistentPrefStore::PREF_READ_ERROR_FILE_NOT_SPECIFIED:
return MojomReadError::FILE_NOT_SPECIFIED;
case PersistentPrefStore::PREF_READ_ERROR_ASYNCHRONOUS_TASK_INCOMPLETE:
return MojomReadError::ASYNCHRONOUS_TASK_INCOMPLETE;
case PersistentPrefStore::PREF_READ_ERROR_MAX_ENUM:
break;
}
NOTREACHED();
return {};
}
bool EnumTraits<MojomReadError, PersistentPrefStore::PrefReadError>::FromMojom(
MojomReadError input,
PersistentPrefStore::PrefReadError* output) {
switch (input) {
case MojomReadError::NONE:
*output = PersistentPrefStore::PREF_READ_ERROR_NONE;
return true;
case MojomReadError::JSON_PARSE:
*output = PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE;
return true;
case MojomReadError::JSON_TYPE:
*output = PersistentPrefStore::PREF_READ_ERROR_JSON_TYPE;
return true;
case MojomReadError::ACCESS_DENIED:
*output = PersistentPrefStore::PREF_READ_ERROR_ACCESS_DENIED;
return true;
case MojomReadError::FILE_OTHER:
*output = PersistentPrefStore::PREF_READ_ERROR_FILE_OTHER;
return true;
case MojomReadError::FILE_LOCKED:
*output = PersistentPrefStore::PREF_READ_ERROR_FILE_LOCKED;
return true;
case MojomReadError::NO_FILE:
*output = PersistentPrefStore::PREF_READ_ERROR_NO_FILE;
return true;
case MojomReadError::JSON_REPEAT:
*output = PersistentPrefStore::PREF_READ_ERROR_JSON_REPEAT;
return true;
case MojomReadError::FILE_NOT_SPECIFIED:
*output = PersistentPrefStore::PREF_READ_ERROR_FILE_NOT_SPECIFIED;
return true;
case MojomReadError::ASYNCHRONOUS_TASK_INCOMPLETE:
*output =
PersistentPrefStore::PREF_READ_ERROR_ASYNCHRONOUS_TASK_INCOMPLETE;
return true;
}
return false;
}
} // namespace mojo