1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 #include "mozilla/intl/DateTimePatternGenerator.h"
6 namespace mozilla::intl
{
8 DateTimePatternGenerator::~DateTimePatternGenerator() {
9 // The mGenerator will not exist when the DateTimePatternGenerator is being
12 udatpg_close(mGenerator
.GetMut());
17 Result
<UniquePtr
<DateTimePatternGenerator
>, ICUError
>
18 DateTimePatternGenerator::TryCreate(const char* aLocale
) {
19 UErrorCode status
= U_ZERO_ERROR
;
20 UDateTimePatternGenerator
* generator
=
21 udatpg_open(IcuLocale(aLocale
), &status
);
22 if (U_FAILURE(status
)) {
23 return Err(ToICUError(status
));
25 return MakeUnique
<DateTimePatternGenerator
>(generator
);
28 DateTimePatternGenerator::DateTimePatternGenerator(
29 DateTimePatternGenerator
&& other
) noexcept
30 : mGenerator(other
.mGenerator
.GetMut()) {
31 other
.mGenerator
= nullptr;
34 DateTimePatternGenerator
& DateTimePatternGenerator::operator=(
35 DateTimePatternGenerator
&& other
) noexcept
{
41 udatpg_close(mGenerator
.GetMut());
43 mGenerator
= other
.mGenerator
.GetMut();
44 other
.mGenerator
= nullptr;
49 } // namespace mozilla::intl