| // 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 "components/spellcheck/common/spellcheck_struct_traits.h" |
| |
| #include "mojo/public/cpp/base/string16_mojom_traits.h" |
| |
| namespace mojo { |
| |
| spellcheck::mojom::Decoration |
| EnumTraits<spellcheck::mojom::Decoration, SpellCheckResult::Decoration>:: |
| ToMojom(SpellCheckResult::Decoration decoration) { |
| switch (decoration) { |
| case SpellCheckResult::SPELLING: |
| return spellcheck::mojom::Decoration::kSpelling; |
| case SpellCheckResult::GRAMMAR: |
| return spellcheck::mojom::Decoration::kGrammar; |
| } |
| NOTREACHED(); |
| return spellcheck::mojom::Decoration::kSpelling; |
| } |
| |
| bool EnumTraits<spellcheck::mojom::Decoration, SpellCheckResult::Decoration>:: |
| FromMojom(spellcheck::mojom::Decoration input, |
| SpellCheckResult::Decoration* output) { |
| switch (input) { |
| case spellcheck::mojom::Decoration::kSpelling: |
| *output = SpellCheckResult::SPELLING; |
| return true; |
| case spellcheck::mojom::Decoration::kGrammar: |
| *output = SpellCheckResult::GRAMMAR; |
| return true; |
| } |
| NOTREACHED(); |
| return false; |
| } |
| |
| bool StructTraits< |
| spellcheck::mojom::SpellCheckResultDataView, |
| SpellCheckResult>::Read(spellcheck::mojom::SpellCheckResultDataView input, |
| SpellCheckResult* output) { |
| if (!input.ReadDecoration(&output->decoration)) |
| return false; |
| output->location = input.location(); |
| output->length = input.length(); |
| if (!input.ReadReplacements(&output->replacements)) |
| return false; |
| return true; |
| } |
| |
| } // namespace mojo |