From a8815972854647d5ce0621a6aab83c51b8378a81 Mon Sep 17 00:00:00 2001 From: Robert Bastian <4706271+robertbastian@users.noreply.github.com> Date: Tue, 23 Jul 2024 13:02:01 +0200 Subject: [PATCH] Add C++ namespace (#5273) Based on #5272 Fixes #2182, #5267. --- ffi/capi/bindings/cpp/AnyCalendarKind.hpp | 81 --- ffi/capi/bindings/cpp/Bidi.d.hpp | 59 -- ffi/capi/bindings/cpp/Bidi.hpp | 106 --- ffi/capi/bindings/cpp/BidiDirection.hpp | 38 -- ffi/capi/bindings/cpp/BidiInfo.d.hpp | 48 -- ffi/capi/bindings/cpp/BidiInfo.hpp | 78 --- ffi/capi/bindings/cpp/BidiParagraph.d.hpp | 53 -- ffi/capi/bindings/cpp/BidiParagraph.hpp | 105 --- ffi/capi/bindings/cpp/Calendar.d.hpp | 50 -- ffi/capi/bindings/cpp/Calendar.hpp | 76 --- ffi/capi/bindings/cpp/CalendarError.hpp | 39 -- ffi/capi/bindings/cpp/CalendarParseError.hpp | 40 -- .../cpp/CanonicalCombiningClassMap.d.hpp | 45 -- .../cpp/CanonicalCombiningClassMap.hpp | 65 -- .../bindings/cpp/CanonicalComposition.d.hpp | 45 -- .../bindings/cpp/CanonicalComposition.hpp | 66 -- .../bindings/cpp/CanonicalDecomposition.d.hpp | 46 -- .../bindings/cpp/CanonicalDecomposition.hpp | 66 -- ffi/capi/bindings/cpp/CaseMapCloser.d.hpp | 49 -- ffi/capi/bindings/cpp/CaseMapCloser.hpp | 76 --- ffi/capi/bindings/cpp/CaseMapper.d.hpp | 70 -- ffi/capi/bindings/cpp/CaseMapper.hpp | 187 ------ .../bindings/cpp/CodePointMapData16.d.hpp | 55 -- ffi/capi/bindings/cpp/CodePointMapData16.hpp | 91 --- ffi/capi/bindings/cpp/CodePointMapData8.d.hpp | 77 --- ffi/capi/bindings/cpp/CodePointMapData8.hpp | 178 ----- .../bindings/cpp/CodePointRangeIterator.d.hpp | 41 -- .../bindings/cpp/CodePointRangeIterator.hpp | 55 -- .../cpp/CodePointRangeIteratorResult.d.hpp | 34 - .../cpp/CodePointRangeIteratorResult.hpp | 42 -- .../bindings/cpp/CodePointSetBuilder.d.hpp | 72 -- ffi/capi/bindings/cpp/CodePointSetBuilder.hpp | 163 ----- ffi/capi/bindings/cpp/CodePointSetData.d.hpp | 184 ------ ffi/capi/bindings/cpp/CodePointSetData.hpp | 615 ------------------ ffi/capi/bindings/cpp/Collator.d.hpp | 53 -- ffi/capi/bindings/cpp/Collator.hpp | 91 --- .../cpp/CollatorAlternateHandling.hpp | 38 -- .../cpp/CollatorBackwardSecondLevel.hpp | 38 -- ffi/capi/bindings/cpp/CollatorCaseFirst.hpp | 39 -- ffi/capi/bindings/cpp/CollatorCaseLevel.hpp | 38 -- ffi/capi/bindings/cpp/CollatorMaxVariable.hpp | 40 -- ffi/capi/bindings/cpp/CollatorNumeric.hpp | 38 -- ffi/capi/bindings/cpp/CollatorOptionsV1.d.hpp | 57 -- ffi/capi/bindings/cpp/CollatorOptionsV1.hpp | 57 -- .../cpp/CollatorResolvedOptionsV1.d.hpp | 57 -- .../cpp/CollatorResolvedOptionsV1.hpp | 57 -- ffi/capi/bindings/cpp/CollatorStrength.hpp | 41 -- .../bindings/cpp/ComposingNormalizer.d.hpp | 55 -- ffi/capi/bindings/cpp/ComposingNormalizer.hpp | 113 ---- ffi/capi/bindings/cpp/CustomTimeZone.d.hpp | 102 --- ffi/capi/bindings/cpp/CustomTimeZone.hpp | 279 -------- ffi/capi/bindings/cpp/DataError.hpp | 44 -- ffi/capi/bindings/cpp/DataProvider.d.hpp | 55 -- ffi/capi/bindings/cpp/DataProvider.hpp | 108 --- ffi/capi/bindings/cpp/Date.d.hpp | 84 --- ffi/capi/bindings/cpp/Date.hpp | 202 ------ ffi/capi/bindings/cpp/DateFormatter.d.hpp | 62 -- ffi/capi/bindings/cpp/DateFormatter.hpp | 113 ---- ffi/capi/bindings/cpp/DateLength.hpp | 39 -- ffi/capi/bindings/cpp/DateTime.d.hpp | 102 --- ffi/capi/bindings/cpp/DateTime.hpp | 262 -------- ffi/capi/bindings/cpp/DateTimeFormatter.d.hpp | 55 -- ffi/capi/bindings/cpp/DateTimeFormatter.hpp | 89 --- .../bindings/cpp/DecomposingNormalizer.d.hpp | 55 -- .../bindings/cpp/DecomposingNormalizer.hpp | 113 ---- .../bindings/cpp/DisplayNamesFallback.hpp | 37 -- .../bindings/cpp/DisplayNamesOptionsV1.d.hpp | 41 -- .../bindings/cpp/DisplayNamesOptionsV1.hpp | 45 -- ffi/capi/bindings/cpp/DisplayNamesStyle.hpp | 40 -- ffi/capi/bindings/cpp/Error.hpp | 55 -- ffi/capi/bindings/cpp/FixedDecimal.d.hpp | 110 ---- ffi/capi/bindings/cpp/FixedDecimal.hpp | 299 --------- .../bindings/cpp/FixedDecimalFormatter.d.hpp | 52 -- .../bindings/cpp/FixedDecimalFormatter.hpp | 98 --- .../cpp/FixedDecimalGroupingStrategy.hpp | 39 -- .../bindings/cpp/FixedDecimalParseError.hpp | 38 -- .../cpp/FixedDecimalRoundingIncrement.hpp | 39 -- .../bindings/cpp/FixedDecimalRoundingMode.hpp | 44 -- ffi/capi/bindings/cpp/FixedDecimalSign.hpp | 38 -- .../bindings/cpp/FixedDecimalSignDisplay.hpp | 40 -- .../cpp/GeneralCategoryNameToMaskMapper.d.hpp | 47 -- .../cpp/GeneralCategoryNameToMaskMapper.hpp | 75 --- .../GraphemeClusterBreakIteratorLatin1.d.hpp | 39 -- .../GraphemeClusterBreakIteratorLatin1.hpp | 54 -- .../GraphemeClusterBreakIteratorUtf16.d.hpp | 39 -- .../cpp/GraphemeClusterBreakIteratorUtf16.hpp | 54 -- .../GraphemeClusterBreakIteratorUtf8.d.hpp | 39 -- .../cpp/GraphemeClusterBreakIteratorUtf8.hpp | 54 -- .../cpp/GraphemeClusterSegmenter.d.hpp | 55 -- .../bindings/cpp/GraphemeClusterSegmenter.hpp | 87 --- .../bindings/cpp/GregorianDateFormatter.d.hpp | 54 -- .../bindings/cpp/GregorianDateFormatter.hpp | 85 --- .../cpp/GregorianDateTimeFormatter.d.hpp | 51 -- .../cpp/GregorianDateTimeFormatter.hpp | 75 --- .../cpp/GregorianZonedDateTimeFormatter.d.hpp | 56 -- .../cpp/GregorianZonedDateTimeFormatter.hpp | 90 --- ffi/capi/bindings/cpp/IsoDate.d.hpp | 80 --- ffi/capi/bindings/cpp/IsoDate.hpp | 174 ----- ffi/capi/bindings/cpp/IsoDateTime.d.hpp | 102 --- ffi/capi/bindings/cpp/IsoDateTime.hpp | 244 ------- ffi/capi/bindings/cpp/IsoTimeZoneFormat.hpp | 39 -- .../bindings/cpp/IsoTimeZoneMinuteDisplay.hpp | 37 -- .../bindings/cpp/IsoTimeZoneOptions.d.hpp | 41 -- ffi/capi/bindings/cpp/IsoTimeZoneOptions.hpp | 45 -- .../bindings/cpp/IsoTimeZoneSecondDisplay.hpp | 37 -- ffi/capi/bindings/cpp/IsoWeekday.hpp | 42 -- ffi/capi/bindings/cpp/LanguageDisplay.hpp | 37 -- ffi/capi/bindings/cpp/LeadingAdjustment.hpp | 38 -- .../cpp/LineBreakIteratorLatin1.d.hpp | 39 -- .../bindings/cpp/LineBreakIteratorLatin1.hpp | 54 -- .../bindings/cpp/LineBreakIteratorUtf16.d.hpp | 39 -- .../bindings/cpp/LineBreakIteratorUtf16.hpp | 54 -- .../bindings/cpp/LineBreakIteratorUtf8.d.hpp | 39 -- .../bindings/cpp/LineBreakIteratorUtf8.hpp | 54 -- .../bindings/cpp/LineBreakOptionsV1.d.hpp | 39 -- ffi/capi/bindings/cpp/LineBreakOptionsV1.hpp | 44 -- ffi/capi/bindings/cpp/LineBreakStrictness.hpp | 39 -- ffi/capi/bindings/cpp/LineBreakWordOption.hpp | 38 -- ffi/capi/bindings/cpp/LineSegmenter.d.hpp | 66 -- ffi/capi/bindings/cpp/LineSegmenter.hpp | 131 ---- ffi/capi/bindings/cpp/ListFormatter.d.hpp | 54 -- ffi/capi/bindings/cpp/ListFormatter.hpp | 105 --- ffi/capi/bindings/cpp/ListLength.hpp | 38 -- ffi/capi/bindings/cpp/Locale.d.hpp | 71 -- ffi/capi/bindings/cpp/Locale.hpp | 204 ------ .../bindings/cpp/LocaleCanonicalizer.d.hpp | 50 -- ffi/capi/bindings/cpp/LocaleCanonicalizer.hpp | 75 --- ffi/capi/bindings/cpp/LocaleDirection.hpp | 38 -- .../bindings/cpp/LocaleDirectionality.d.hpp | 56 -- .../bindings/cpp/LocaleDirectionality.hpp | 93 --- .../cpp/LocaleDisplayNamesFormatter.d.hpp | 48 -- .../cpp/LocaleDisplayNamesFormatter.hpp | 72 -- ffi/capi/bindings/cpp/LocaleExpander.d.hpp | 54 -- ffi/capi/bindings/cpp/LocaleExpander.hpp | 91 --- .../bindings/cpp/LocaleFallbackConfig.d.hpp | 39 -- .../bindings/cpp/LocaleFallbackConfig.hpp | 44 -- .../bindings/cpp/LocaleFallbackIterator.d.hpp | 42 -- .../bindings/cpp/LocaleFallbackIterator.hpp | 55 -- .../bindings/cpp/LocaleFallbackPriority.hpp | 38 -- .../bindings/cpp/LocaleFallbackSupplement.hpp | 37 -- ffi/capi/bindings/cpp/LocaleFallbacker.d.hpp | 51 -- ffi/capi/bindings/cpp/LocaleFallbacker.hpp | 76 --- .../cpp/LocaleFallbackerWithConfig.d.hpp | 44 -- .../cpp/LocaleFallbackerWithConfig.hpp | 57 -- ffi/capi/bindings/cpp/LocaleParseError.hpp | 39 -- ffi/capi/bindings/cpp/Logger.d.hpp | 39 -- ffi/capi/bindings/cpp/Logger.hpp | 54 -- ffi/capi/bindings/cpp/MeasureUnit.d.hpp | 37 -- ffi/capi/bindings/cpp/MeasureUnit.hpp | 47 -- ffi/capi/bindings/cpp/MeasureUnitParser.d.hpp | 42 -- ffi/capi/bindings/cpp/MeasureUnitParser.hpp | 57 -- .../bindings/cpp/MetazoneCalculator.d.hpp | 43 -- ffi/capi/bindings/cpp/MetazoneCalculator.hpp | 57 -- ffi/capi/bindings/cpp/PluralCategory.hpp | 50 -- ffi/capi/bindings/cpp/PluralOperands.d.hpp | 45 -- ffi/capi/bindings/cpp/PluralOperands.hpp | 65 -- ffi/capi/bindings/cpp/PluralRules.d.hpp | 55 -- ffi/capi/bindings/cpp/PluralRules.hpp | 86 --- .../cpp/PropertyValueNameToEnumMapper.d.hpp | 65 -- .../cpp/PropertyValueNameToEnumMapper.hpp | 147 ----- .../bindings/cpp/RegionDisplayNames.d.hpp | 48 -- ffi/capi/bindings/cpp/RegionDisplayNames.hpp | 73 --- ffi/capi/bindings/cpp/ReorderedIndexMap.d.hpp | 45 -- ffi/capi/bindings/cpp/ReorderedIndexMap.hpp | 76 --- .../bindings/cpp/ScriptExtensionsSet.d.hpp | 43 -- ffi/capi/bindings/cpp/ScriptExtensionsSet.hpp | 71 -- .../bindings/cpp/ScriptWithExtensions.d.hpp | 55 -- .../bindings/cpp/ScriptWithExtensions.hpp | 91 --- .../cpp/ScriptWithExtensionsBorrowed.d.hpp | 50 -- .../cpp/ScriptWithExtensionsBorrowed.hpp | 82 --- ffi/capi/bindings/cpp/SegmenterWordType.hpp | 45 -- .../cpp/SentenceBreakIteratorLatin1.d.hpp | 39 -- .../cpp/SentenceBreakIteratorLatin1.hpp | 54 -- .../cpp/SentenceBreakIteratorUtf16.d.hpp | 39 -- .../cpp/SentenceBreakIteratorUtf16.hpp | 54 -- .../cpp/SentenceBreakIteratorUtf8.d.hpp | 39 -- .../cpp/SentenceBreakIteratorUtf8.hpp | 54 -- ffi/capi/bindings/cpp/SentenceSegmenter.d.hpp | 55 -- ffi/capi/bindings/cpp/SentenceSegmenter.hpp | 87 --- ffi/capi/bindings/cpp/Time.d.hpp | 54 -- ffi/capi/bindings/cpp/Time.hpp | 105 --- ffi/capi/bindings/cpp/TimeFormatter.d.hpp | 58 -- ffi/capi/bindings/cpp/TimeFormatter.hpp | 97 --- ffi/capi/bindings/cpp/TimeLength.hpp | 39 -- ffi/capi/bindings/cpp/TimeZoneFormatter.d.hpp | 68 -- ffi/capi/bindings/cpp/TimeZoneFormatter.hpp | 156 ----- ffi/capi/bindings/cpp/TimeZoneIdMapper.d.hpp | 52 -- ffi/capi/bindings/cpp/TimeZoneIdMapper.hpp | 116 ---- ...ZoneIdMapperWithFastCanonicalization.d.hpp | 48 -- ...meZoneIdMapperWithFastCanonicalization.hpp | 87 --- .../cpp/TimeZoneInvalidOffsetError.d.hpp | 25 - ffi/capi/bindings/cpp/TitlecaseMapper.d.hpp | 48 -- ffi/capi/bindings/cpp/TitlecaseMapper.hpp | 76 --- .../bindings/cpp/TitlecaseOptionsV1.d.hpp | 39 -- ffi/capi/bindings/cpp/TitlecaseOptionsV1.hpp | 49 -- ffi/capi/bindings/cpp/TrailingCase.hpp | 37 -- ffi/capi/bindings/cpp/TransformResult.hpp | 37 -- ffi/capi/bindings/cpp/UnicodeSetData.d.hpp | 59 -- ffi/capi/bindings/cpp/UnicodeSetData.hpp | 120 ---- ffi/capi/bindings/cpp/UnitsConverter.d.hpp | 41 -- ffi/capi/bindings/cpp/UnitsConverter.hpp | 62 -- .../bindings/cpp/UnitsConverterFactory.d.hpp | 53 -- .../bindings/cpp/UnitsConverterFactory.hpp | 76 --- ffi/capi/bindings/cpp/WeekCalculator.d.hpp | 55 -- ffi/capi/bindings/cpp/WeekCalculator.hpp | 90 --- ffi/capi/bindings/cpp/WeekOf.d.hpp | 35 - ffi/capi/bindings/cpp/WeekOf.hpp | 41 -- ffi/capi/bindings/cpp/WeekRelativeUnit.hpp | 38 -- .../cpp/WordBreakIteratorLatin1.d.hpp | 45 -- .../bindings/cpp/WordBreakIteratorLatin1.hpp | 69 -- .../bindings/cpp/WordBreakIteratorUtf16.d.hpp | 45 -- .../bindings/cpp/WordBreakIteratorUtf16.hpp | 69 -- .../bindings/cpp/WordBreakIteratorUtf8.d.hpp | 45 -- .../bindings/cpp/WordBreakIteratorUtf8.hpp | 69 -- ffi/capi/bindings/cpp/WordSegmenter.d.hpp | 59 -- ffi/capi/bindings/cpp/WordSegmenter.hpp | 103 --- .../bindings/cpp/ZonedDateTimeFormatter.d.hpp | 60 -- .../bindings/cpp/ZonedDateTimeFormatter.hpp | 105 --- .../cpp/{ => icu4x}/AnyCalendarKind.d.hpp | 26 +- .../bindings/cpp/icu4x/AnyCalendarKind.hpp | 81 +++ ffi/capi/bindings/cpp/icu4x/Bidi.d.hpp | 64 ++ ffi/capi/bindings/cpp/icu4x/Bidi.hpp | 106 +++ .../cpp/{ => icu4x}/BidiDirection.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/BidiDirection.hpp | 38 ++ ffi/capi/bindings/cpp/icu4x/BidiInfo.d.hpp | 51 ++ ffi/capi/bindings/cpp/icu4x/BidiInfo.hpp | 78 +++ .../bindings/cpp/icu4x/BidiParagraph.d.hpp | 56 ++ ffi/capi/bindings/cpp/icu4x/BidiParagraph.hpp | 105 +++ ffi/capi/bindings/cpp/icu4x/Calendar.d.hpp | 55 ++ ffi/capi/bindings/cpp/icu4x/Calendar.hpp | 76 +++ .../cpp/{ => icu4x}/CalendarError.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/CalendarError.hpp | 39 ++ .../cpp/{ => icu4x}/CalendarParseError.d.hpp | 17 +- .../bindings/cpp/icu4x/CalendarParseError.hpp | 40 ++ .../icu4x/CanonicalCombiningClassMap.d.hpp | 50 ++ .../cpp/icu4x/CanonicalCombiningClassMap.hpp | 65 ++ .../cpp/icu4x/CanonicalComposition.d.hpp | 50 ++ .../cpp/icu4x/CanonicalComposition.hpp | 66 ++ .../cpp/icu4x/CanonicalDecomposition.d.hpp | 51 ++ .../cpp/icu4x/CanonicalDecomposition.hpp | 66 ++ .../bindings/cpp/icu4x/CaseMapCloser.d.hpp | 54 ++ ffi/capi/bindings/cpp/icu4x/CaseMapCloser.hpp | 76 +++ ffi/capi/bindings/cpp/icu4x/CaseMapper.d.hpp | 75 +++ ffi/capi/bindings/cpp/icu4x/CaseMapper.hpp | 187 ++++++ .../cpp/icu4x/CodePointMapData16.d.hpp | 60 ++ .../bindings/cpp/icu4x/CodePointMapData16.hpp | 91 +++ .../cpp/icu4x/CodePointMapData8.d.hpp | 82 +++ .../bindings/cpp/icu4x/CodePointMapData8.hpp | 178 +++++ .../cpp/icu4x/CodePointRangeIterator.d.hpp | 44 ++ .../cpp/icu4x/CodePointRangeIterator.hpp | 55 ++ .../icu4x/CodePointRangeIteratorResult.d.hpp | 35 + .../icu4x/CodePointRangeIteratorResult.hpp | 42 ++ .../cpp/icu4x/CodePointSetBuilder.d.hpp | 77 +++ .../cpp/icu4x/CodePointSetBuilder.hpp | 163 +++++ .../bindings/cpp/icu4x/CodePointSetData.d.hpp | 189 ++++++ .../bindings/cpp/icu4x/CodePointSetData.hpp | 615 ++++++++++++++++++ ffi/capi/bindings/cpp/icu4x/Collator.d.hpp | 58 ++ ffi/capi/bindings/cpp/icu4x/Collator.hpp | 91 +++ .../CollatorAlternateHandling.d.hpp | 17 +- .../cpp/icu4x/CollatorAlternateHandling.hpp | 38 ++ .../CollatorBackwardSecondLevel.d.hpp | 17 +- .../cpp/icu4x/CollatorBackwardSecondLevel.hpp | 38 ++ .../cpp/{ => icu4x}/CollatorCaseFirst.d.hpp | 17 +- .../bindings/cpp/icu4x/CollatorCaseFirst.hpp | 39 ++ .../cpp/{ => icu4x}/CollatorCaseLevel.d.hpp | 17 +- .../bindings/cpp/icu4x/CollatorCaseLevel.hpp | 38 ++ .../cpp/{ => icu4x}/CollatorMaxVariable.d.hpp | 17 +- .../cpp/icu4x/CollatorMaxVariable.hpp | 40 ++ .../cpp/{ => icu4x}/CollatorNumeric.d.hpp | 17 +- .../bindings/cpp/icu4x/CollatorNumeric.hpp | 38 ++ .../cpp/icu4x/CollatorOptionsV1.d.hpp | 60 ++ .../bindings/cpp/icu4x/CollatorOptionsV1.hpp | 57 ++ .../cpp/icu4x/CollatorResolvedOptionsV1.d.hpp | 60 ++ .../cpp/icu4x/CollatorResolvedOptionsV1.hpp | 57 ++ .../cpp/{ => icu4x}/CollatorStrength.d.hpp | 17 +- .../bindings/cpp/icu4x/CollatorStrength.hpp | 41 ++ .../cpp/icu4x/ComposingNormalizer.d.hpp | 60 ++ .../cpp/icu4x/ComposingNormalizer.hpp | 113 ++++ .../bindings/cpp/icu4x/CustomTimeZone.d.hpp | 107 +++ .../bindings/cpp/icu4x/CustomTimeZone.hpp | 279 ++++++++ .../bindings/cpp/{ => icu4x}/DataError.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/DataError.hpp | 44 ++ .../bindings/cpp/icu4x/DataProvider.d.hpp | 60 ++ ffi/capi/bindings/cpp/icu4x/DataProvider.hpp | 108 +++ ffi/capi/bindings/cpp/icu4x/Date.d.hpp | 89 +++ ffi/capi/bindings/cpp/icu4x/Date.hpp | 202 ++++++ .../bindings/cpp/icu4x/DateFormatter.d.hpp | 67 ++ ffi/capi/bindings/cpp/icu4x/DateFormatter.hpp | 113 ++++ .../bindings/cpp/{ => icu4x}/DateLength.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/DateLength.hpp | 39 ++ ffi/capi/bindings/cpp/icu4x/DateTime.d.hpp | 107 +++ ffi/capi/bindings/cpp/icu4x/DateTime.hpp | 262 ++++++++ .../cpp/icu4x/DateTimeFormatter.d.hpp | 60 ++ .../bindings/cpp/icu4x/DateTimeFormatter.hpp | 89 +++ .../bindings/cpp/{ => icu4x}/Decomposed.d.hpp | 17 +- .../bindings/cpp/{ => icu4x}/Decomposed.hpp | 18 +- .../cpp/icu4x/DecomposingNormalizer.d.hpp | 60 ++ .../cpp/icu4x/DecomposingNormalizer.hpp | 113 ++++ .../{ => icu4x}/DisplayNamesFallback.d.hpp | 17 +- .../cpp/icu4x/DisplayNamesFallback.hpp | 37 ++ .../cpp/icu4x/DisplayNamesOptionsV1.d.hpp | 44 ++ .../cpp/icu4x/DisplayNamesOptionsV1.hpp | 45 ++ .../cpp/{ => icu4x}/DisplayNamesStyle.d.hpp | 17 +- .../bindings/cpp/icu4x/DisplayNamesStyle.hpp | 40 ++ ffi/capi/bindings/cpp/{ => icu4x}/Error.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/Error.hpp | 55 ++ .../bindings/cpp/icu4x/FixedDecimal.d.hpp | 115 ++++ ffi/capi/bindings/cpp/icu4x/FixedDecimal.hpp | 299 +++++++++ .../cpp/icu4x/FixedDecimalFormatter.d.hpp | 57 ++ .../cpp/icu4x/FixedDecimalFormatter.hpp | 98 +++ .../FixedDecimalGroupingStrategy.d.hpp | 17 +- .../icu4x/FixedDecimalGroupingStrategy.hpp | 39 ++ .../{ => icu4x}/FixedDecimalLimitError.d.hpp | 13 +- .../{ => icu4x}/FixedDecimalLimitError.hpp | 10 +- .../{ => icu4x}/FixedDecimalParseError.d.hpp | 17 +- .../cpp/icu4x/FixedDecimalParseError.hpp | 38 ++ .../FixedDecimalRoundingIncrement.d.hpp | 17 +- .../icu4x/FixedDecimalRoundingIncrement.hpp | 39 ++ .../FixedDecimalRoundingMode.d.hpp | 17 +- .../cpp/icu4x/FixedDecimalRoundingMode.hpp | 44 ++ .../cpp/{ => icu4x}/FixedDecimalSign.d.hpp | 17 +- .../bindings/cpp/icu4x/FixedDecimalSign.hpp | 38 ++ .../{ => icu4x}/FixedDecimalSignDisplay.d.hpp | 17 +- .../cpp/icu4x/FixedDecimalSignDisplay.hpp | 40 ++ .../GeneralCategoryNameToMaskMapper.d.hpp | 52 ++ .../icu4x/GeneralCategoryNameToMaskMapper.hpp | 75 +++ .../GraphemeClusterBreakIteratorLatin1.d.hpp | 40 ++ .../GraphemeClusterBreakIteratorLatin1.hpp | 54 ++ .../GraphemeClusterBreakIteratorUtf16.d.hpp | 40 ++ .../GraphemeClusterBreakIteratorUtf16.hpp | 54 ++ .../GraphemeClusterBreakIteratorUtf8.d.hpp | 40 ++ .../GraphemeClusterBreakIteratorUtf8.hpp | 54 ++ .../cpp/icu4x/GraphemeClusterSegmenter.d.hpp | 60 ++ .../cpp/icu4x/GraphemeClusterSegmenter.hpp | 87 +++ .../cpp/icu4x/GregorianDateFormatter.d.hpp | 59 ++ .../cpp/icu4x/GregorianDateFormatter.hpp | 85 +++ .../icu4x/GregorianDateTimeFormatter.d.hpp | 56 ++ .../cpp/icu4x/GregorianDateTimeFormatter.hpp | 75 +++ .../GregorianZonedDateTimeFormatter.d.hpp | 61 ++ .../icu4x/GregorianZonedDateTimeFormatter.hpp | 90 +++ ffi/capi/bindings/cpp/icu4x/IsoDate.d.hpp | 85 +++ ffi/capi/bindings/cpp/icu4x/IsoDate.hpp | 174 +++++ ffi/capi/bindings/cpp/icu4x/IsoDateTime.d.hpp | 107 +++ ffi/capi/bindings/cpp/icu4x/IsoDateTime.hpp | 244 +++++++ .../cpp/{ => icu4x}/IsoTimeZoneFormat.d.hpp | 17 +- .../bindings/cpp/icu4x/IsoTimeZoneFormat.hpp | 39 ++ .../IsoTimeZoneMinuteDisplay.d.hpp | 17 +- .../cpp/icu4x/IsoTimeZoneMinuteDisplay.hpp | 37 ++ .../cpp/icu4x/IsoTimeZoneOptions.d.hpp | 44 ++ .../bindings/cpp/icu4x/IsoTimeZoneOptions.hpp | 45 ++ .../IsoTimeZoneSecondDisplay.d.hpp | 17 +- .../cpp/icu4x/IsoTimeZoneSecondDisplay.hpp | 37 ++ .../bindings/cpp/{ => icu4x}/IsoWeekday.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/IsoWeekday.hpp | 42 ++ .../cpp/{ => icu4x}/LanguageDisplay.d.hpp | 17 +- .../bindings/cpp/icu4x/LanguageDisplay.hpp | 37 ++ .../cpp/{ => icu4x}/LeadingAdjustment.d.hpp | 17 +- .../bindings/cpp/icu4x/LeadingAdjustment.hpp | 38 ++ .../cpp/icu4x/LineBreakIteratorLatin1.d.hpp | 40 ++ .../cpp/icu4x/LineBreakIteratorLatin1.hpp | 54 ++ .../cpp/icu4x/LineBreakIteratorUtf16.d.hpp | 40 ++ .../cpp/icu4x/LineBreakIteratorUtf16.hpp | 54 ++ .../cpp/icu4x/LineBreakIteratorUtf8.d.hpp | 40 ++ .../cpp/icu4x/LineBreakIteratorUtf8.hpp | 54 ++ .../cpp/icu4x/LineBreakOptionsV1.d.hpp | 42 ++ .../bindings/cpp/icu4x/LineBreakOptionsV1.hpp | 44 ++ .../cpp/{ => icu4x}/LineBreakStrictness.d.hpp | 17 +- .../cpp/icu4x/LineBreakStrictness.hpp | 39 ++ .../cpp/{ => icu4x}/LineBreakWordOption.d.hpp | 17 +- .../cpp/icu4x/LineBreakWordOption.hpp | 38 ++ .../bindings/cpp/icu4x/LineSegmenter.d.hpp | 71 ++ ffi/capi/bindings/cpp/icu4x/LineSegmenter.hpp | 131 ++++ .../bindings/cpp/icu4x/ListFormatter.d.hpp | 59 ++ ffi/capi/bindings/cpp/icu4x/ListFormatter.hpp | 105 +++ .../bindings/cpp/{ => icu4x}/ListLength.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/ListLength.hpp | 38 ++ ffi/capi/bindings/cpp/icu4x/Locale.d.hpp | 76 +++ ffi/capi/bindings/cpp/icu4x/Locale.hpp | 204 ++++++ .../cpp/icu4x/LocaleCanonicalizer.d.hpp | 55 ++ .../cpp/icu4x/LocaleCanonicalizer.hpp | 75 +++ .../cpp/{ => icu4x}/LocaleDirection.d.hpp | 17 +- .../bindings/cpp/icu4x/LocaleDirection.hpp | 38 ++ .../cpp/icu4x/LocaleDirectionality.d.hpp | 61 ++ .../cpp/icu4x/LocaleDirectionality.hpp | 93 +++ .../icu4x/LocaleDisplayNamesFormatter.d.hpp | 53 ++ .../cpp/icu4x/LocaleDisplayNamesFormatter.hpp | 72 ++ .../bindings/cpp/icu4x/LocaleExpander.d.hpp | 59 ++ .../bindings/cpp/icu4x/LocaleExpander.hpp | 91 +++ .../cpp/icu4x/LocaleFallbackConfig.d.hpp | 42 ++ .../cpp/icu4x/LocaleFallbackConfig.hpp | 44 ++ .../cpp/icu4x/LocaleFallbackIterator.d.hpp | 45 ++ .../cpp/icu4x/LocaleFallbackIterator.hpp | 55 ++ .../{ => icu4x}/LocaleFallbackPriority.d.hpp | 17 +- .../cpp/icu4x/LocaleFallbackPriority.hpp | 38 ++ .../LocaleFallbackSupplement.d.hpp | 17 +- .../cpp/icu4x/LocaleFallbackSupplement.hpp | 37 ++ .../bindings/cpp/icu4x/LocaleFallbacker.d.hpp | 56 ++ .../bindings/cpp/icu4x/LocaleFallbacker.hpp | 76 +++ .../icu4x/LocaleFallbackerWithConfig.d.hpp | 47 ++ .../cpp/icu4x/LocaleFallbackerWithConfig.hpp | 57 ++ .../cpp/{ => icu4x}/LocaleParseError.d.hpp | 17 +- .../bindings/cpp/icu4x/LocaleParseError.hpp | 39 ++ ffi/capi/bindings/cpp/icu4x/Logger.d.hpp | 40 ++ ffi/capi/bindings/cpp/icu4x/Logger.hpp | 54 ++ ffi/capi/bindings/cpp/icu4x/MeasureUnit.d.hpp | 38 ++ ffi/capi/bindings/cpp/icu4x/MeasureUnit.hpp | 47 ++ .../cpp/icu4x/MeasureUnitParser.d.hpp | 45 ++ .../bindings/cpp/icu4x/MeasureUnitParser.hpp | 57 ++ .../cpp/icu4x/MetazoneCalculator.d.hpp | 48 ++ .../bindings/cpp/icu4x/MetazoneCalculator.hpp | 57 ++ .../cpp/{ => icu4x}/PluralCategories.d.hpp | 17 +- .../cpp/{ => icu4x}/PluralCategories.hpp | 18 +- .../cpp/{ => icu4x}/PluralCategory.d.hpp | 23 +- .../bindings/cpp/icu4x/PluralCategory.hpp | 50 ++ .../bindings/cpp/icu4x/PluralOperands.d.hpp | 50 ++ .../bindings/cpp/icu4x/PluralOperands.hpp | 65 ++ ffi/capi/bindings/cpp/icu4x/PluralRules.d.hpp | 60 ++ ffi/capi/bindings/cpp/icu4x/PluralRules.hpp | 86 +++ .../icu4x/PropertyValueNameToEnumMapper.d.hpp | 70 ++ .../icu4x/PropertyValueNameToEnumMapper.hpp | 147 +++++ .../cpp/icu4x/RegionDisplayNames.d.hpp | 53 ++ .../bindings/cpp/icu4x/RegionDisplayNames.hpp | 73 +++ .../cpp/icu4x/ReorderedIndexMap.d.hpp | 46 ++ .../bindings/cpp/icu4x/ReorderedIndexMap.hpp | 76 +++ .../cpp/icu4x/ScriptExtensionsSet.d.hpp | 44 ++ .../cpp/icu4x/ScriptExtensionsSet.hpp | 71 ++ .../cpp/icu4x/ScriptWithExtensions.d.hpp | 60 ++ .../cpp/icu4x/ScriptWithExtensions.hpp | 91 +++ .../icu4x/ScriptWithExtensionsBorrowed.d.hpp | 53 ++ .../icu4x/ScriptWithExtensionsBorrowed.hpp | 82 +++ .../cpp/{ => icu4x}/SegmenterWordType.d.hpp | 17 +- .../bindings/cpp/icu4x/SegmenterWordType.hpp | 45 ++ .../icu4x/SentenceBreakIteratorLatin1.d.hpp | 40 ++ .../cpp/icu4x/SentenceBreakIteratorLatin1.hpp | 54 ++ .../icu4x/SentenceBreakIteratorUtf16.d.hpp | 40 ++ .../cpp/icu4x/SentenceBreakIteratorUtf16.hpp | 54 ++ .../cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp | 40 ++ .../cpp/icu4x/SentenceBreakIteratorUtf8.hpp | 54 ++ .../cpp/icu4x/SentenceSegmenter.d.hpp | 60 ++ .../bindings/cpp/icu4x/SentenceSegmenter.hpp | 87 +++ ffi/capi/bindings/cpp/icu4x/Time.d.hpp | 59 ++ ffi/capi/bindings/cpp/icu4x/Time.hpp | 105 +++ .../bindings/cpp/icu4x/TimeFormatter.d.hpp | 63 ++ ffi/capi/bindings/cpp/icu4x/TimeFormatter.hpp | 97 +++ .../bindings/cpp/{ => icu4x}/TimeLength.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/TimeLength.hpp | 39 ++ .../cpp/icu4x/TimeZoneFormatter.d.hpp | 73 +++ .../bindings/cpp/icu4x/TimeZoneFormatter.hpp | 156 +++++ .../bindings/cpp/icu4x/TimeZoneIdMapper.d.hpp | 57 ++ .../bindings/cpp/icu4x/TimeZoneIdMapper.hpp | 116 ++++ ...ZoneIdMapperWithFastCanonicalization.d.hpp | 53 ++ ...meZoneIdMapperWithFastCanonicalization.hpp | 87 +++ .../{ => icu4x}/TimeZoneInvalidIdError.d.hpp | 13 +- .../{ => icu4x}/TimeZoneInvalidIdError.hpp | 10 +- .../icu4x/TimeZoneInvalidOffsetError.d.hpp | 26 + .../TimeZoneInvalidOffsetError.hpp | 10 +- .../bindings/cpp/icu4x/TitlecaseMapper.d.hpp | 53 ++ .../bindings/cpp/icu4x/TitlecaseMapper.hpp | 76 +++ .../cpp/icu4x/TitlecaseOptionsV1.d.hpp | 43 ++ .../bindings/cpp/icu4x/TitlecaseOptionsV1.hpp | 49 ++ .../cpp/{ => icu4x}/TrailingCase.d.hpp | 17 +- ffi/capi/bindings/cpp/icu4x/TrailingCase.hpp | 37 ++ .../cpp/{ => icu4x}/TransformResult.d.hpp | 17 +- .../bindings/cpp/icu4x/TransformResult.hpp | 37 ++ .../bindings/cpp/icu4x/UnicodeSetData.d.hpp | 64 ++ .../bindings/cpp/icu4x/UnicodeSetData.hpp | 120 ++++ .../bindings/cpp/icu4x/UnitsConverter.d.hpp | 47 ++ .../bindings/cpp/icu4x/UnitsConverter.hpp | 62 ++ .../cpp/icu4x/UnitsConverterFactory.d.hpp | 58 ++ .../cpp/icu4x/UnitsConverterFactory.hpp | 76 +++ .../bindings/cpp/icu4x/WeekCalculator.d.hpp | 60 ++ .../bindings/cpp/icu4x/WeekCalculator.hpp | 90 +++ ffi/capi/bindings/cpp/icu4x/WeekOf.d.hpp | 38 ++ ffi/capi/bindings/cpp/icu4x/WeekOf.hpp | 41 ++ .../cpp/{ => icu4x}/WeekRelativeUnit.d.hpp | 17 +- .../bindings/cpp/icu4x/WeekRelativeUnit.hpp | 38 ++ .../cpp/{ => icu4x}/WeekendContainsDay.d.hpp | 17 +- .../cpp/{ => icu4x}/WeekendContainsDay.hpp | 18 +- .../cpp/icu4x/WordBreakIteratorLatin1.d.hpp | 48 ++ .../cpp/icu4x/WordBreakIteratorLatin1.hpp | 69 ++ .../cpp/icu4x/WordBreakIteratorUtf16.d.hpp | 48 ++ .../cpp/icu4x/WordBreakIteratorUtf16.hpp | 69 ++ .../cpp/icu4x/WordBreakIteratorUtf8.d.hpp | 48 ++ .../cpp/icu4x/WordBreakIteratorUtf8.hpp | 69 ++ .../bindings/cpp/icu4x/WordSegmenter.d.hpp | 64 ++ ffi/capi/bindings/cpp/icu4x/WordSegmenter.hpp | 103 +++ .../cpp/icu4x/ZonedDateTimeFormatter.d.hpp | 65 ++ .../cpp/icu4x/ZonedDateTimeFormatter.hpp | 105 +++ ffi/capi/src/bidi.rs | 1 + ffi/capi/src/calendar.rs | 1 + ffi/capi/src/casemap.rs | 1 + ffi/capi/src/collator.rs | 1 + ffi/capi/src/collections_sets.rs | 1 + ffi/capi/src/date.rs | 1 + ffi/capi/src/datetime.rs | 1 + ffi/capi/src/datetime_formatter.rs | 1 + ffi/capi/src/decimal.rs | 1 + ffi/capi/src/displaynames.rs | 1 + ffi/capi/src/errors.rs | 1 + ffi/capi/src/fallbacker.rs | 1 + ffi/capi/src/fixed_decimal.rs | 1 + ffi/capi/src/list.rs | 1 + ffi/capi/src/locale.rs | 1 + ffi/capi/src/locale_core.rs | 1 + ffi/capi/src/locale_directionality.rs | 1 + ffi/capi/src/logging.rs | 1 + ffi/capi/src/metazone_calculator.rs | 1 + ffi/capi/src/normalizer.rs | 1 + ffi/capi/src/normalizer_properties.rs | 1 + ffi/capi/src/pluralrules.rs | 1 + ffi/capi/src/properties_iter.rs | 1 + ffi/capi/src/properties_maps.rs | 1 + ffi/capi/src/properties_names.rs | 1 + ffi/capi/src/properties_sets.rs | 1 + ffi/capi/src/properties_unisets.rs | 1 + ffi/capi/src/provider.rs | 1 + ffi/capi/src/script.rs | 1 + ffi/capi/src/segmenter_grapheme.rs | 1 + ffi/capi/src/segmenter_line.rs | 1 + ffi/capi/src/segmenter_sentence.rs | 1 + ffi/capi/src/segmenter_word.rs | 1 + ffi/capi/src/time.rs | 1 + ffi/capi/src/timezone.rs | 1 + ffi/capi/src/timezone_formatter.rs | 1 + ffi/capi/src/timezone_mapper.rs | 1 + ffi/capi/src/units_converter.rs | 1 + ffi/capi/src/week.rs | 1 + ffi/capi/src/zoned_formatter.rs | 1 + tutorials/cpp/bidi.cpp | 8 +- tutorials/cpp/casemapping.cpp | 12 +- tutorials/cpp/collator.cpp | 10 +- tutorials/cpp/datetime.cpp | 22 +- tutorials/cpp/fixeddecimal.cpp | 6 +- tutorials/cpp/locale.cpp | 6 +- tutorials/cpp/pluralrules.cpp | 6 +- tutorials/cpp/properties.cpp | 16 +- tutorials/cpp/segmenter.cpp | 14 +- tutorials/cpp/units_converter.cpp | 12 +- 538 files changed, 16202 insertions(+), 15738 deletions(-) delete mode 100644 ffi/capi/bindings/cpp/AnyCalendarKind.hpp delete mode 100644 ffi/capi/bindings/cpp/Bidi.d.hpp delete mode 100644 ffi/capi/bindings/cpp/Bidi.hpp delete mode 100644 ffi/capi/bindings/cpp/BidiDirection.hpp delete mode 100644 ffi/capi/bindings/cpp/BidiInfo.d.hpp delete mode 100644 ffi/capi/bindings/cpp/BidiInfo.hpp delete mode 100644 ffi/capi/bindings/cpp/BidiParagraph.d.hpp delete mode 100644 ffi/capi/bindings/cpp/BidiParagraph.hpp delete mode 100644 ffi/capi/bindings/cpp/Calendar.d.hpp delete mode 100644 ffi/capi/bindings/cpp/Calendar.hpp delete mode 100644 ffi/capi/bindings/cpp/CalendarError.hpp delete mode 100644 ffi/capi/bindings/cpp/CalendarParseError.hpp delete mode 100644 ffi/capi/bindings/cpp/CanonicalCombiningClassMap.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CanonicalCombiningClassMap.hpp delete mode 100644 ffi/capi/bindings/cpp/CanonicalComposition.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CanonicalComposition.hpp delete mode 100644 ffi/capi/bindings/cpp/CanonicalDecomposition.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CanonicalDecomposition.hpp delete mode 100644 ffi/capi/bindings/cpp/CaseMapCloser.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CaseMapCloser.hpp delete mode 100644 ffi/capi/bindings/cpp/CaseMapper.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CaseMapper.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointMapData16.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointMapData16.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointMapData8.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointMapData8.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointRangeIterator.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointRangeIterator.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointRangeIteratorResult.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointRangeIteratorResult.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointSetBuilder.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointSetBuilder.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointSetData.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CodePointSetData.hpp delete mode 100644 ffi/capi/bindings/cpp/Collator.d.hpp delete mode 100644 ffi/capi/bindings/cpp/Collator.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorAlternateHandling.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorBackwardSecondLevel.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorCaseFirst.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorCaseLevel.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorMaxVariable.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorNumeric.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorOptionsV1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorOptionsV1.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.hpp delete mode 100644 ffi/capi/bindings/cpp/CollatorStrength.hpp delete mode 100644 ffi/capi/bindings/cpp/ComposingNormalizer.d.hpp delete mode 100644 ffi/capi/bindings/cpp/ComposingNormalizer.hpp delete mode 100644 ffi/capi/bindings/cpp/CustomTimeZone.d.hpp delete mode 100644 ffi/capi/bindings/cpp/CustomTimeZone.hpp delete mode 100644 ffi/capi/bindings/cpp/DataError.hpp delete mode 100644 ffi/capi/bindings/cpp/DataProvider.d.hpp delete mode 100644 ffi/capi/bindings/cpp/DataProvider.hpp delete mode 100644 ffi/capi/bindings/cpp/Date.d.hpp delete mode 100644 ffi/capi/bindings/cpp/Date.hpp delete mode 100644 ffi/capi/bindings/cpp/DateFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/DateFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/DateLength.hpp delete mode 100644 ffi/capi/bindings/cpp/DateTime.d.hpp delete mode 100644 ffi/capi/bindings/cpp/DateTime.hpp delete mode 100644 ffi/capi/bindings/cpp/DateTimeFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/DateTimeFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/DecomposingNormalizer.d.hpp delete mode 100644 ffi/capi/bindings/cpp/DecomposingNormalizer.hpp delete mode 100644 ffi/capi/bindings/cpp/DisplayNamesFallback.hpp delete mode 100644 ffi/capi/bindings/cpp/DisplayNamesOptionsV1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/DisplayNamesOptionsV1.hpp delete mode 100644 ffi/capi/bindings/cpp/DisplayNamesStyle.hpp delete mode 100644 ffi/capi/bindings/cpp/Error.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimal.d.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimal.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalGroupingStrategy.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalParseError.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalRoundingIncrement.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalRoundingMode.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalSign.hpp delete mode 100644 ffi/capi/bindings/cpp/FixedDecimalSignDisplay.hpp delete mode 100644 ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterSegmenter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GraphemeClusterSegmenter.hpp delete mode 100644 ffi/capi/bindings/cpp/GregorianDateFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GregorianDateFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/GregorianDateTimeFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GregorianDateTimeFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoDate.d.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoDate.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoDateTime.d.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoDateTime.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoTimeZoneFormat.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoTimeZoneMinuteDisplay.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoTimeZoneOptions.d.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoTimeZoneOptions.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoTimeZoneSecondDisplay.hpp delete mode 100644 ffi/capi/bindings/cpp/IsoWeekday.hpp delete mode 100644 ffi/capi/bindings/cpp/LanguageDisplay.hpp delete mode 100644 ffi/capi/bindings/cpp/LeadingAdjustment.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakIteratorLatin1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakIteratorLatin1.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakIteratorUtf16.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakIteratorUtf16.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakIteratorUtf8.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakIteratorUtf8.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakOptionsV1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakOptionsV1.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakStrictness.hpp delete mode 100644 ffi/capi/bindings/cpp/LineBreakWordOption.hpp delete mode 100644 ffi/capi/bindings/cpp/LineSegmenter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LineSegmenter.hpp delete mode 100644 ffi/capi/bindings/cpp/ListFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/ListFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/ListLength.hpp delete mode 100644 ffi/capi/bindings/cpp/Locale.d.hpp delete mode 100644 ffi/capi/bindings/cpp/Locale.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleCanonicalizer.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleCanonicalizer.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleDirection.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleDirectionality.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleDirectionality.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleExpander.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleExpander.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackConfig.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackConfig.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackIterator.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackIterator.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackPriority.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackSupplement.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbacker.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbacker.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.d.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.hpp delete mode 100644 ffi/capi/bindings/cpp/LocaleParseError.hpp delete mode 100644 ffi/capi/bindings/cpp/Logger.d.hpp delete mode 100644 ffi/capi/bindings/cpp/Logger.hpp delete mode 100644 ffi/capi/bindings/cpp/MeasureUnit.d.hpp delete mode 100644 ffi/capi/bindings/cpp/MeasureUnit.hpp delete mode 100644 ffi/capi/bindings/cpp/MeasureUnitParser.d.hpp delete mode 100644 ffi/capi/bindings/cpp/MeasureUnitParser.hpp delete mode 100644 ffi/capi/bindings/cpp/MetazoneCalculator.d.hpp delete mode 100644 ffi/capi/bindings/cpp/MetazoneCalculator.hpp delete mode 100644 ffi/capi/bindings/cpp/PluralCategory.hpp delete mode 100644 ffi/capi/bindings/cpp/PluralOperands.d.hpp delete mode 100644 ffi/capi/bindings/cpp/PluralOperands.hpp delete mode 100644 ffi/capi/bindings/cpp/PluralRules.d.hpp delete mode 100644 ffi/capi/bindings/cpp/PluralRules.hpp delete mode 100644 ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.d.hpp delete mode 100644 ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.hpp delete mode 100644 ffi/capi/bindings/cpp/RegionDisplayNames.d.hpp delete mode 100644 ffi/capi/bindings/cpp/RegionDisplayNames.hpp delete mode 100644 ffi/capi/bindings/cpp/ReorderedIndexMap.d.hpp delete mode 100644 ffi/capi/bindings/cpp/ReorderedIndexMap.hpp delete mode 100644 ffi/capi/bindings/cpp/ScriptExtensionsSet.d.hpp delete mode 100644 ffi/capi/bindings/cpp/ScriptExtensionsSet.hpp delete mode 100644 ffi/capi/bindings/cpp/ScriptWithExtensions.d.hpp delete mode 100644 ffi/capi/bindings/cpp/ScriptWithExtensions.hpp delete mode 100644 ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.d.hpp delete mode 100644 ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.hpp delete mode 100644 ffi/capi/bindings/cpp/SegmenterWordType.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.d.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.d.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceSegmenter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/SentenceSegmenter.hpp delete mode 100644 ffi/capi/bindings/cpp/Time.d.hpp delete mode 100644 ffi/capi/bindings/cpp/Time.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeLength.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeZoneFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeZoneFormatter.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeZoneIdMapper.d.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeZoneIdMapper.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.d.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.hpp delete mode 100644 ffi/capi/bindings/cpp/TimeZoneInvalidOffsetError.d.hpp delete mode 100644 ffi/capi/bindings/cpp/TitlecaseMapper.d.hpp delete mode 100644 ffi/capi/bindings/cpp/TitlecaseMapper.hpp delete mode 100644 ffi/capi/bindings/cpp/TitlecaseOptionsV1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/TitlecaseOptionsV1.hpp delete mode 100644 ffi/capi/bindings/cpp/TrailingCase.hpp delete mode 100644 ffi/capi/bindings/cpp/TransformResult.hpp delete mode 100644 ffi/capi/bindings/cpp/UnicodeSetData.d.hpp delete mode 100644 ffi/capi/bindings/cpp/UnicodeSetData.hpp delete mode 100644 ffi/capi/bindings/cpp/UnitsConverter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/UnitsConverter.hpp delete mode 100644 ffi/capi/bindings/cpp/UnitsConverterFactory.d.hpp delete mode 100644 ffi/capi/bindings/cpp/UnitsConverterFactory.hpp delete mode 100644 ffi/capi/bindings/cpp/WeekCalculator.d.hpp delete mode 100644 ffi/capi/bindings/cpp/WeekCalculator.hpp delete mode 100644 ffi/capi/bindings/cpp/WeekOf.d.hpp delete mode 100644 ffi/capi/bindings/cpp/WeekOf.hpp delete mode 100644 ffi/capi/bindings/cpp/WeekRelativeUnit.hpp delete mode 100644 ffi/capi/bindings/cpp/WordBreakIteratorLatin1.d.hpp delete mode 100644 ffi/capi/bindings/cpp/WordBreakIteratorLatin1.hpp delete mode 100644 ffi/capi/bindings/cpp/WordBreakIteratorUtf16.d.hpp delete mode 100644 ffi/capi/bindings/cpp/WordBreakIteratorUtf16.hpp delete mode 100644 ffi/capi/bindings/cpp/WordBreakIteratorUtf8.d.hpp delete mode 100644 ffi/capi/bindings/cpp/WordBreakIteratorUtf8.hpp delete mode 100644 ffi/capi/bindings/cpp/WordSegmenter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/WordSegmenter.hpp delete mode 100644 ffi/capi/bindings/cpp/ZonedDateTimeFormatter.d.hpp delete mode 100644 ffi/capi/bindings/cpp/ZonedDateTimeFormatter.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/AnyCalendarKind.d.hpp (73%) create mode 100644 ffi/capi/bindings/cpp/icu4x/AnyCalendarKind.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Bidi.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Bidi.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/BidiDirection.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/BidiDirection.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/BidiInfo.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/BidiInfo.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/BidiParagraph.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/BidiParagraph.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Calendar.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Calendar.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CalendarError.d.hpp (70%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CalendarError.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CalendarParseError.d.hpp (71%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CalendarParseError.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CanonicalComposition.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CanonicalComposition.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CaseMapCloser.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CaseMapCloser.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CaseMapper.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CaseMapper.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointMapData16.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointMapData16.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointMapData8.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointMapData8.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointSetData.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CodePointSetData.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Collator.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Collator.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CollatorAlternateHandling.d.hpp (66%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorAlternateHandling.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CollatorBackwardSecondLevel.d.hpp (65%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorBackwardSecondLevel.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CollatorCaseFirst.d.hpp (69%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorCaseFirst.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CollatorCaseLevel.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorCaseLevel.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CollatorMaxVariable.d.hpp (70%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorMaxVariable.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CollatorNumeric.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorNumeric.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/CollatorStrength.d.hpp (72%) create mode 100644 ffi/capi/bindings/cpp/icu4x/CollatorStrength.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CustomTimeZone.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/CustomTimeZone.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/DataError.d.hpp (77%) create mode 100644 ffi/capi/bindings/cpp/icu4x/DataError.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DataProvider.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DataProvider.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Date.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Date.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DateFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DateFormatter.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/DateLength.d.hpp (69%) create mode 100644 ffi/capi/bindings/cpp/icu4x/DateLength.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DateTime.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DateTime.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/Decomposed.d.hpp (50%) rename ffi/capi/bindings/cpp/{ => icu4x}/Decomposed.hpp (52%) create mode 100644 ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/DisplayNamesFallback.d.hpp (65%) create mode 100644 ffi/capi/bindings/cpp/icu4x/DisplayNamesFallback.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/DisplayNamesStyle.d.hpp (70%) create mode 100644 ffi/capi/bindings/cpp/icu4x/DisplayNamesStyle.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/Error.d.hpp (88%) create mode 100644 ffi/capi/bindings/cpp/icu4x/Error.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimal.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimal.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalGroupingStrategy.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalGroupingStrategy.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalLimitError.d.hpp (50%) rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalLimitError.hpp (59%) rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalParseError.d.hpp (66%) create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalParseError.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalRoundingIncrement.d.hpp (68%) create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalRoundingMode.d.hpp (74%) create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingMode.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalSign.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalSign.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/FixedDecimalSignDisplay.d.hpp (69%) create mode 100644 ffi/capi/bindings/cpp/icu4x/FixedDecimalSignDisplay.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoDate.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoDate.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoDateTime.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoDateTime.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/IsoTimeZoneFormat.d.hpp (69%) create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoTimeZoneFormat.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/IsoTimeZoneMinuteDisplay.d.hpp (64%) create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoTimeZoneMinuteDisplay.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/IsoTimeZoneSecondDisplay.d.hpp (64%) create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoTimeZoneSecondDisplay.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/IsoWeekday.d.hpp (74%) create mode 100644 ffi/capi/bindings/cpp/icu4x/IsoWeekday.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LanguageDisplay.d.hpp (66%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LanguageDisplay.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LeadingAdjustment.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LeadingAdjustment.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LineBreakStrictness.d.hpp (68%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakStrictness.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LineBreakWordOption.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LineBreakWordOption.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineSegmenter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LineSegmenter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ListFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ListFormatter.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/ListLength.d.hpp (68%) create mode 100644 ffi/capi/bindings/cpp/icu4x/ListLength.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Locale.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Locale.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LocaleDirection.d.hpp (68%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleDirection.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleExpander.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleExpander.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LocaleFallbackPriority.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackPriority.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LocaleFallbackSupplement.d.hpp (64%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackSupplement.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/LocaleParseError.d.hpp (69%) create mode 100644 ffi/capi/bindings/cpp/icu4x/LocaleParseError.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Logger.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Logger.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/MeasureUnit.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/MeasureUnit.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/PluralCategories.d.hpp (55%) rename ffi/capi/bindings/cpp/{ => icu4x}/PluralCategories.hpp (59%) rename ffi/capi/bindings/cpp/{ => icu4x}/PluralCategory.d.hpp (63%) create mode 100644 ffi/capi/bindings/cpp/icu4x/PluralCategory.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/PluralOperands.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/PluralOperands.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/PluralRules.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/PluralRules.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/SegmenterWordType.d.hpp (68%) create mode 100644 ffi/capi/bindings/cpp/icu4x/SegmenterWordType.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Time.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/Time.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeFormatter.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/TimeLength.d.hpp (69%) create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeLength.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/TimeZoneInvalidIdError.d.hpp (50%) rename ffi/capi/bindings/cpp/{ => icu4x}/TimeZoneInvalidIdError.hpp (59%) create mode 100644 ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.d.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/TimeZoneInvalidOffsetError.hpp (58%) create mode 100644 ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/TrailingCase.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/TrailingCase.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/TransformResult.d.hpp (66%) create mode 100644 ffi/capi/bindings/cpp/icu4x/TransformResult.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/UnicodeSetData.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/UnicodeSetData.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/UnitsConverter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/UnitsConverter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WeekCalculator.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WeekCalculator.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WeekOf.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WeekOf.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/WeekRelativeUnit.d.hpp (67%) create mode 100644 ffi/capi/bindings/cpp/icu4x/WeekRelativeUnit.hpp rename ffi/capi/bindings/cpp/{ => icu4x}/WeekendContainsDay.d.hpp (58%) rename ffi/capi/bindings/cpp/{ => icu4x}/WeekendContainsDay.hpp (63%) create mode 100644 ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WordSegmenter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/WordSegmenter.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.d.hpp create mode 100644 ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.hpp diff --git a/ffi/capi/bindings/cpp/AnyCalendarKind.hpp b/ffi/capi/bindings/cpp/AnyCalendarKind.hpp deleted file mode 100644 index 14fb6b9003d..00000000000 --- a/ffi/capi/bindings/cpp/AnyCalendarKind.hpp +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef AnyCalendarKind_HPP -#define AnyCalendarKind_HPP - -#include "AnyCalendarKind.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_AnyCalendarKind_get_for_locale_mv1_result {union {diplomat::capi::AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_locale_mv1_result; - icu4x_AnyCalendarKind_get_for_locale_mv1_result icu4x_AnyCalendarKind_get_for_locale_mv1(const diplomat::capi::Locale* locale); - - typedef struct icu4x_AnyCalendarKind_get_for_bcp47_mv1_result {union {diplomat::capi::AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_bcp47_mv1_result; - icu4x_AnyCalendarKind_get_for_bcp47_mv1_result icu4x_AnyCalendarKind_get_for_bcp47_mv1(const char* s_data, size_t s_len); - - void icu4x_AnyCalendarKind_bcp47_mv1(diplomat::capi::AnyCalendarKind self, diplomat::capi::DiplomatWrite* write); - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::AnyCalendarKind AnyCalendarKind::AsFFI() const { - return static_cast<diplomat::capi::AnyCalendarKind>(value); -} - -inline AnyCalendarKind AnyCalendarKind::FromFFI(diplomat::capi::AnyCalendarKind c_enum) { - switch (c_enum) { - case diplomat::capi::AnyCalendarKind_Iso: - case diplomat::capi::AnyCalendarKind_Gregorian: - case diplomat::capi::AnyCalendarKind_Buddhist: - case diplomat::capi::AnyCalendarKind_Japanese: - case diplomat::capi::AnyCalendarKind_JapaneseExtended: - case diplomat::capi::AnyCalendarKind_Ethiopian: - case diplomat::capi::AnyCalendarKind_EthiopianAmeteAlem: - case diplomat::capi::AnyCalendarKind_Indian: - case diplomat::capi::AnyCalendarKind_Coptic: - case diplomat::capi::AnyCalendarKind_Dangi: - case diplomat::capi::AnyCalendarKind_Chinese: - case diplomat::capi::AnyCalendarKind_Hebrew: - case diplomat::capi::AnyCalendarKind_IslamicCivil: - case diplomat::capi::AnyCalendarKind_IslamicObservational: - case diplomat::capi::AnyCalendarKind_IslamicTabular: - case diplomat::capi::AnyCalendarKind_IslamicUmmAlQura: - case diplomat::capi::AnyCalendarKind_Persian: - case diplomat::capi::AnyCalendarKind_Roc: - return static_cast<AnyCalendarKind::Value>(c_enum); - default: - abort(); - } -} - -inline std::optional<AnyCalendarKind> AnyCalendarKind::get_for_locale(const Locale& locale) { - auto result = diplomat::capi::icu4x_AnyCalendarKind_get_for_locale_mv1(locale.AsFFI()); - return result.is_ok ? std::optional<AnyCalendarKind>(AnyCalendarKind::FromFFI(result.ok)) : std::nullopt; -} - -inline std::optional<AnyCalendarKind> AnyCalendarKind::get_for_bcp47(std::string_view s) { - auto result = diplomat::capi::icu4x_AnyCalendarKind_get_for_bcp47_mv1(s.data(), - s.size()); - return result.is_ok ? std::optional<AnyCalendarKind>(AnyCalendarKind::FromFFI(result.ok)) : std::nullopt; -} - -inline std::string AnyCalendarKind::bcp47() { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_AnyCalendarKind_bcp47_mv1(this->AsFFI(), - &write); - return output; -} -#endif // AnyCalendarKind_HPP diff --git a/ffi/capi/bindings/cpp/Bidi.d.hpp b/ffi/capi/bindings/cpp/Bidi.d.hpp deleted file mode 100644 index 023af749d2d..00000000000 --- a/ffi/capi/bindings/cpp/Bidi.d.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef Bidi_D_HPP -#define Bidi_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct BidiInfo; } -class BidiInfo; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct ReorderedIndexMap; } -class ReorderedIndexMap; -class DataError; - - -namespace diplomat { -namespace capi { - struct Bidi; -} // namespace capi -} // namespace - -class Bidi { -public: - - inline static diplomat::result<std::unique_ptr<Bidi>, DataError> create(const DataProvider& provider); - - inline std::unique_ptr<BidiInfo> for_text(std::string_view text, uint8_t default_level) const; - - inline std::unique_ptr<ReorderedIndexMap> reorder_visual(diplomat::span<const uint8_t> levels) const; - - inline static bool level_is_rtl(uint8_t level); - - inline static bool level_is_ltr(uint8_t level); - - inline static uint8_t level_rtl(); - - inline static uint8_t level_ltr(); - - inline const diplomat::capi::Bidi* AsFFI() const; - inline diplomat::capi::Bidi* AsFFI(); - inline static const Bidi* FromFFI(const diplomat::capi::Bidi* ptr); - inline static Bidi* FromFFI(diplomat::capi::Bidi* ptr); - inline static void operator delete(void* ptr); -private: - Bidi() = delete; - Bidi(const Bidi&) = delete; - Bidi(Bidi&&) noexcept = delete; - Bidi operator=(const Bidi&) = delete; - Bidi operator=(Bidi&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // Bidi_D_HPP diff --git a/ffi/capi/bindings/cpp/Bidi.hpp b/ffi/capi/bindings/cpp/Bidi.hpp deleted file mode 100644 index f08f458403b..00000000000 --- a/ffi/capi/bindings/cpp/Bidi.hpp +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef Bidi_HPP -#define Bidi_HPP - -#include "Bidi.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "BidiInfo.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "ReorderedIndexMap.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_Bidi_create_mv1_result {union {diplomat::capi::Bidi* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_Bidi_create_mv1_result; - icu4x_Bidi_create_mv1_result icu4x_Bidi_create_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::BidiInfo* icu4x_Bidi_for_text_utf8_mv1(const diplomat::capi::Bidi* self, const char* text_data, size_t text_len, uint8_t default_level); - - diplomat::capi::ReorderedIndexMap* icu4x_Bidi_reorder_visual_mv1(const diplomat::capi::Bidi* self, const uint8_t* levels_data, size_t levels_len); - - bool icu4x_Bidi_level_is_rtl_mv1(uint8_t level); - - bool icu4x_Bidi_level_is_ltr_mv1(uint8_t level); - - uint8_t icu4x_Bidi_level_rtl_mv1(void); - - uint8_t icu4x_Bidi_level_ltr_mv1(void); - - - void icu4x_Bidi_destroy_mv1(Bidi* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<Bidi>, DataError> Bidi::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_Bidi_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<Bidi>, DataError>(diplomat::Ok<std::unique_ptr<Bidi>>(std::unique_ptr<Bidi>(Bidi::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Bidi>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<BidiInfo> Bidi::for_text(std::string_view text, uint8_t default_level) const { - auto result = diplomat::capi::icu4x_Bidi_for_text_utf8_mv1(this->AsFFI(), - text.data(), - text.size(), - default_level); - return std::unique_ptr<BidiInfo>(BidiInfo::FromFFI(result)); -} - -inline std::unique_ptr<ReorderedIndexMap> Bidi::reorder_visual(diplomat::span<const uint8_t> levels) const { - auto result = diplomat::capi::icu4x_Bidi_reorder_visual_mv1(this->AsFFI(), - levels.data(), - levels.size()); - return std::unique_ptr<ReorderedIndexMap>(ReorderedIndexMap::FromFFI(result)); -} - -inline bool Bidi::level_is_rtl(uint8_t level) { - auto result = diplomat::capi::icu4x_Bidi_level_is_rtl_mv1(level); - return result; -} - -inline bool Bidi::level_is_ltr(uint8_t level) { - auto result = diplomat::capi::icu4x_Bidi_level_is_ltr_mv1(level); - return result; -} - -inline uint8_t Bidi::level_rtl() { - auto result = diplomat::capi::icu4x_Bidi_level_rtl_mv1(); - return result; -} - -inline uint8_t Bidi::level_ltr() { - auto result = diplomat::capi::icu4x_Bidi_level_ltr_mv1(); - return result; -} - -inline const diplomat::capi::Bidi* Bidi::AsFFI() const { - return reinterpret_cast<const diplomat::capi::Bidi*>(this); -} - -inline diplomat::capi::Bidi* Bidi::AsFFI() { - return reinterpret_cast<diplomat::capi::Bidi*>(this); -} - -inline const Bidi* Bidi::FromFFI(const diplomat::capi::Bidi* ptr) { - return reinterpret_cast<const Bidi*>(ptr); -} - -inline Bidi* Bidi::FromFFI(diplomat::capi::Bidi* ptr) { - return reinterpret_cast<Bidi*>(ptr); -} - -inline void Bidi::operator delete(void* ptr) { - diplomat::capi::icu4x_Bidi_destroy_mv1(reinterpret_cast<diplomat::capi::Bidi*>(ptr)); -} - - -#endif // Bidi_HPP diff --git a/ffi/capi/bindings/cpp/BidiDirection.hpp b/ffi/capi/bindings/cpp/BidiDirection.hpp deleted file mode 100644 index 3e428fbd760..00000000000 --- a/ffi/capi/bindings/cpp/BidiDirection.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef BidiDirection_HPP -#define BidiDirection_HPP - -#include "BidiDirection.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::BidiDirection BidiDirection::AsFFI() const { - return static_cast<diplomat::capi::BidiDirection>(value); -} - -inline BidiDirection BidiDirection::FromFFI(diplomat::capi::BidiDirection c_enum) { - switch (c_enum) { - case diplomat::capi::BidiDirection_Ltr: - case diplomat::capi::BidiDirection_Rtl: - case diplomat::capi::BidiDirection_Mixed: - return static_cast<BidiDirection::Value>(c_enum); - default: - abort(); - } -} -#endif // BidiDirection_HPP diff --git a/ffi/capi/bindings/cpp/BidiInfo.d.hpp b/ffi/capi/bindings/cpp/BidiInfo.d.hpp deleted file mode 100644 index c96d6f980d1..00000000000 --- a/ffi/capi/bindings/cpp/BidiInfo.d.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef BidiInfo_D_HPP -#define BidiInfo_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct BidiParagraph; } -class BidiParagraph; - - -namespace diplomat { -namespace capi { - struct BidiInfo; -} // namespace capi -} // namespace - -class BidiInfo { -public: - - inline size_t paragraph_count() const; - - inline std::unique_ptr<BidiParagraph> paragraph_at(size_t n) const; - - inline size_t size() const; - - inline uint8_t level_at(size_t pos) const; - - inline const diplomat::capi::BidiInfo* AsFFI() const; - inline diplomat::capi::BidiInfo* AsFFI(); - inline static const BidiInfo* FromFFI(const diplomat::capi::BidiInfo* ptr); - inline static BidiInfo* FromFFI(diplomat::capi::BidiInfo* ptr); - inline static void operator delete(void* ptr); -private: - BidiInfo() = delete; - BidiInfo(const BidiInfo&) = delete; - BidiInfo(BidiInfo&&) noexcept = delete; - BidiInfo operator=(const BidiInfo&) = delete; - BidiInfo operator=(BidiInfo&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // BidiInfo_D_HPP diff --git a/ffi/capi/bindings/cpp/BidiInfo.hpp b/ffi/capi/bindings/cpp/BidiInfo.hpp deleted file mode 100644 index 0a66d81c7cc..00000000000 --- a/ffi/capi/bindings/cpp/BidiInfo.hpp +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef BidiInfo_HPP -#define BidiInfo_HPP - -#include "BidiInfo.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "BidiParagraph.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - size_t icu4x_BidiInfo_paragraph_count_mv1(const diplomat::capi::BidiInfo* self); - - diplomat::capi::BidiParagraph* icu4x_BidiInfo_paragraph_at_mv1(const diplomat::capi::BidiInfo* self, size_t n); - - size_t icu4x_BidiInfo_size_mv1(const diplomat::capi::BidiInfo* self); - - uint8_t icu4x_BidiInfo_level_at_mv1(const diplomat::capi::BidiInfo* self, size_t pos); - - - void icu4x_BidiInfo_destroy_mv1(BidiInfo* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline size_t BidiInfo::paragraph_count() const { - auto result = diplomat::capi::icu4x_BidiInfo_paragraph_count_mv1(this->AsFFI()); - return result; -} - -inline std::unique_ptr<BidiParagraph> BidiInfo::paragraph_at(size_t n) const { - auto result = diplomat::capi::icu4x_BidiInfo_paragraph_at_mv1(this->AsFFI(), - n); - return std::unique_ptr<BidiParagraph>(BidiParagraph::FromFFI(result)); -} - -inline size_t BidiInfo::size() const { - auto result = diplomat::capi::icu4x_BidiInfo_size_mv1(this->AsFFI()); - return result; -} - -inline uint8_t BidiInfo::level_at(size_t pos) const { - auto result = diplomat::capi::icu4x_BidiInfo_level_at_mv1(this->AsFFI(), - pos); - return result; -} - -inline const diplomat::capi::BidiInfo* BidiInfo::AsFFI() const { - return reinterpret_cast<const diplomat::capi::BidiInfo*>(this); -} - -inline diplomat::capi::BidiInfo* BidiInfo::AsFFI() { - return reinterpret_cast<diplomat::capi::BidiInfo*>(this); -} - -inline const BidiInfo* BidiInfo::FromFFI(const diplomat::capi::BidiInfo* ptr) { - return reinterpret_cast<const BidiInfo*>(ptr); -} - -inline BidiInfo* BidiInfo::FromFFI(diplomat::capi::BidiInfo* ptr) { - return reinterpret_cast<BidiInfo*>(ptr); -} - -inline void BidiInfo::operator delete(void* ptr) { - diplomat::capi::icu4x_BidiInfo_destroy_mv1(reinterpret_cast<diplomat::capi::BidiInfo*>(ptr)); -} - - -#endif // BidiInfo_HPP diff --git a/ffi/capi/bindings/cpp/BidiParagraph.d.hpp b/ffi/capi/bindings/cpp/BidiParagraph.d.hpp deleted file mode 100644 index f4a1c24188d..00000000000 --- a/ffi/capi/bindings/cpp/BidiParagraph.d.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef BidiParagraph_D_HPP -#define BidiParagraph_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -class BidiDirection; - - -namespace diplomat { -namespace capi { - struct BidiParagraph; -} // namespace capi -} // namespace - -class BidiParagraph { -public: - - inline bool set_paragraph_in_text(size_t n); - - inline BidiDirection direction() const; - - inline size_t size() const; - - inline size_t range_start() const; - - inline size_t range_end() const; - - inline std::optional<std::string> reorder_line(size_t range_start, size_t range_end) const; - - inline uint8_t level_at(size_t pos) const; - - inline const diplomat::capi::BidiParagraph* AsFFI() const; - inline diplomat::capi::BidiParagraph* AsFFI(); - inline static const BidiParagraph* FromFFI(const diplomat::capi::BidiParagraph* ptr); - inline static BidiParagraph* FromFFI(diplomat::capi::BidiParagraph* ptr); - inline static void operator delete(void* ptr); -private: - BidiParagraph() = delete; - BidiParagraph(const BidiParagraph&) = delete; - BidiParagraph(BidiParagraph&&) noexcept = delete; - BidiParagraph operator=(const BidiParagraph&) = delete; - BidiParagraph operator=(BidiParagraph&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // BidiParagraph_D_HPP diff --git a/ffi/capi/bindings/cpp/BidiParagraph.hpp b/ffi/capi/bindings/cpp/BidiParagraph.hpp deleted file mode 100644 index e5dc3b8828f..00000000000 --- a/ffi/capi/bindings/cpp/BidiParagraph.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef BidiParagraph_HPP -#define BidiParagraph_HPP - -#include "BidiParagraph.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "BidiDirection.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - bool icu4x_BidiParagraph_set_paragraph_in_text_mv1(diplomat::capi::BidiParagraph* self, size_t n); - - diplomat::capi::BidiDirection icu4x_BidiParagraph_direction_mv1(const diplomat::capi::BidiParagraph* self); - - size_t icu4x_BidiParagraph_size_mv1(const diplomat::capi::BidiParagraph* self); - - size_t icu4x_BidiParagraph_range_start_mv1(const diplomat::capi::BidiParagraph* self); - - size_t icu4x_BidiParagraph_range_end_mv1(const diplomat::capi::BidiParagraph* self); - - typedef struct icu4x_BidiParagraph_reorder_line_mv1_result { bool is_ok;} icu4x_BidiParagraph_reorder_line_mv1_result; - icu4x_BidiParagraph_reorder_line_mv1_result icu4x_BidiParagraph_reorder_line_mv1(const diplomat::capi::BidiParagraph* self, size_t range_start, size_t range_end, diplomat::capi::DiplomatWrite* write); - - uint8_t icu4x_BidiParagraph_level_at_mv1(const diplomat::capi::BidiParagraph* self, size_t pos); - - - void icu4x_BidiParagraph_destroy_mv1(BidiParagraph* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline bool BidiParagraph::set_paragraph_in_text(size_t n) { - auto result = diplomat::capi::icu4x_BidiParagraph_set_paragraph_in_text_mv1(this->AsFFI(), - n); - return result; -} - -inline BidiDirection BidiParagraph::direction() const { - auto result = diplomat::capi::icu4x_BidiParagraph_direction_mv1(this->AsFFI()); - return BidiDirection::FromFFI(result); -} - -inline size_t BidiParagraph::size() const { - auto result = diplomat::capi::icu4x_BidiParagraph_size_mv1(this->AsFFI()); - return result; -} - -inline size_t BidiParagraph::range_start() const { - auto result = diplomat::capi::icu4x_BidiParagraph_range_start_mv1(this->AsFFI()); - return result; -} - -inline size_t BidiParagraph::range_end() const { - auto result = diplomat::capi::icu4x_BidiParagraph_range_end_mv1(this->AsFFI()); - return result; -} - -inline std::optional<std::string> BidiParagraph::reorder_line(size_t range_start, size_t range_end) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_BidiParagraph_reorder_line_mv1(this->AsFFI(), - range_start, - range_end, - &write); - return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; -} - -inline uint8_t BidiParagraph::level_at(size_t pos) const { - auto result = diplomat::capi::icu4x_BidiParagraph_level_at_mv1(this->AsFFI(), - pos); - return result; -} - -inline const diplomat::capi::BidiParagraph* BidiParagraph::AsFFI() const { - return reinterpret_cast<const diplomat::capi::BidiParagraph*>(this); -} - -inline diplomat::capi::BidiParagraph* BidiParagraph::AsFFI() { - return reinterpret_cast<diplomat::capi::BidiParagraph*>(this); -} - -inline const BidiParagraph* BidiParagraph::FromFFI(const diplomat::capi::BidiParagraph* ptr) { - return reinterpret_cast<const BidiParagraph*>(ptr); -} - -inline BidiParagraph* BidiParagraph::FromFFI(diplomat::capi::BidiParagraph* ptr) { - return reinterpret_cast<BidiParagraph*>(ptr); -} - -inline void BidiParagraph::operator delete(void* ptr) { - diplomat::capi::icu4x_BidiParagraph_destroy_mv1(reinterpret_cast<diplomat::capi::BidiParagraph*>(ptr)); -} - - -#endif // BidiParagraph_HPP diff --git a/ffi/capi/bindings/cpp/Calendar.d.hpp b/ffi/capi/bindings/cpp/Calendar.d.hpp deleted file mode 100644 index 9ef02b2f2b1..00000000000 --- a/ffi/capi/bindings/cpp/Calendar.d.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef Calendar_D_HPP -#define Calendar_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -class AnyCalendarKind; -class DataError; - - -namespace diplomat { -namespace capi { - struct Calendar; -} // namespace capi -} // namespace - -class Calendar { -public: - - inline static diplomat::result<std::unique_ptr<Calendar>, DataError> create_for_locale(const DataProvider& provider, const Locale& locale); - - inline static diplomat::result<std::unique_ptr<Calendar>, DataError> create_for_kind(const DataProvider& provider, AnyCalendarKind kind); - - inline AnyCalendarKind kind() const; - - inline const diplomat::capi::Calendar* AsFFI() const; - inline diplomat::capi::Calendar* AsFFI(); - inline static const Calendar* FromFFI(const diplomat::capi::Calendar* ptr); - inline static Calendar* FromFFI(diplomat::capi::Calendar* ptr); - inline static void operator delete(void* ptr); -private: - Calendar() = delete; - Calendar(const Calendar&) = delete; - Calendar(Calendar&&) noexcept = delete; - Calendar operator=(const Calendar&) = delete; - Calendar operator=(Calendar&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // Calendar_D_HPP diff --git a/ffi/capi/bindings/cpp/Calendar.hpp b/ffi/capi/bindings/cpp/Calendar.hpp deleted file mode 100644 index 6fc4014ba39..00000000000 --- a/ffi/capi/bindings/cpp/Calendar.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef Calendar_HPP -#define Calendar_HPP - -#include "Calendar.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "AnyCalendarKind.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_Calendar_create_for_locale_mv1_result {union {diplomat::capi::Calendar* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_locale_mv1_result; - icu4x_Calendar_create_for_locale_mv1_result icu4x_Calendar_create_for_locale_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_Calendar_create_for_kind_mv1_result {union {diplomat::capi::Calendar* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_kind_mv1_result; - icu4x_Calendar_create_for_kind_mv1_result icu4x_Calendar_create_for_kind_mv1(const diplomat::capi::DataProvider* provider, diplomat::capi::AnyCalendarKind kind); - - diplomat::capi::AnyCalendarKind icu4x_Calendar_kind_mv1(const diplomat::capi::Calendar* self); - - - void icu4x_Calendar_destroy_mv1(Calendar* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<Calendar>, DataError> Calendar::create_for_locale(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_Calendar_create_for_locale_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<Calendar>, DataError>(diplomat::Ok<std::unique_ptr<Calendar>>(std::unique_ptr<Calendar>(Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Calendar>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<Calendar>, DataError> Calendar::create_for_kind(const DataProvider& provider, AnyCalendarKind kind) { - auto result = diplomat::capi::icu4x_Calendar_create_for_kind_mv1(provider.AsFFI(), - kind.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<Calendar>, DataError>(diplomat::Ok<std::unique_ptr<Calendar>>(std::unique_ptr<Calendar>(Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Calendar>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline AnyCalendarKind Calendar::kind() const { - auto result = diplomat::capi::icu4x_Calendar_kind_mv1(this->AsFFI()); - return AnyCalendarKind::FromFFI(result); -} - -inline const diplomat::capi::Calendar* Calendar::AsFFI() const { - return reinterpret_cast<const diplomat::capi::Calendar*>(this); -} - -inline diplomat::capi::Calendar* Calendar::AsFFI() { - return reinterpret_cast<diplomat::capi::Calendar*>(this); -} - -inline const Calendar* Calendar::FromFFI(const diplomat::capi::Calendar* ptr) { - return reinterpret_cast<const Calendar*>(ptr); -} - -inline Calendar* Calendar::FromFFI(diplomat::capi::Calendar* ptr) { - return reinterpret_cast<Calendar*>(ptr); -} - -inline void Calendar::operator delete(void* ptr) { - diplomat::capi::icu4x_Calendar_destroy_mv1(reinterpret_cast<diplomat::capi::Calendar*>(ptr)); -} - - -#endif // Calendar_HPP diff --git a/ffi/capi/bindings/cpp/CalendarError.hpp b/ffi/capi/bindings/cpp/CalendarError.hpp deleted file mode 100644 index 838dc241dc0..00000000000 --- a/ffi/capi/bindings/cpp/CalendarError.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CalendarError_HPP -#define CalendarError_HPP - -#include "CalendarError.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CalendarError CalendarError::AsFFI() const { - return static_cast<diplomat::capi::CalendarError>(value); -} - -inline CalendarError CalendarError::FromFFI(diplomat::capi::CalendarError c_enum) { - switch (c_enum) { - case diplomat::capi::CalendarError_Unknown: - case diplomat::capi::CalendarError_OutOfRange: - case diplomat::capi::CalendarError_UnknownEra: - case diplomat::capi::CalendarError_UnknownMonthCode: - return static_cast<CalendarError::Value>(c_enum); - default: - abort(); - } -} -#endif // CalendarError_HPP diff --git a/ffi/capi/bindings/cpp/CalendarParseError.hpp b/ffi/capi/bindings/cpp/CalendarParseError.hpp deleted file mode 100644 index 4d62a27ca85..00000000000 --- a/ffi/capi/bindings/cpp/CalendarParseError.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef CalendarParseError_HPP -#define CalendarParseError_HPP - -#include "CalendarParseError.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CalendarParseError CalendarParseError::AsFFI() const { - return static_cast<diplomat::capi::CalendarParseError>(value); -} - -inline CalendarParseError CalendarParseError::FromFFI(diplomat::capi::CalendarParseError c_enum) { - switch (c_enum) { - case diplomat::capi::CalendarParseError_Unknown: - case diplomat::capi::CalendarParseError_InvalidSyntax: - case diplomat::capi::CalendarParseError_OutOfRange: - case diplomat::capi::CalendarParseError_MissingFields: - case diplomat::capi::CalendarParseError_UnknownCalendar: - return static_cast<CalendarParseError::Value>(c_enum); - default: - abort(); - } -} -#endif // CalendarParseError_HPP diff --git a/ffi/capi/bindings/cpp/CanonicalCombiningClassMap.d.hpp b/ffi/capi/bindings/cpp/CanonicalCombiningClassMap.d.hpp deleted file mode 100644 index eaf45434b47..00000000000 --- a/ffi/capi/bindings/cpp/CanonicalCombiningClassMap.d.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef CanonicalCombiningClassMap_D_HPP -#define CanonicalCombiningClassMap_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct CanonicalCombiningClassMap; -} // namespace capi -} // namespace - -class CanonicalCombiningClassMap { -public: - - inline static diplomat::result<std::unique_ptr<CanonicalCombiningClassMap>, DataError> create(const DataProvider& provider); - - inline uint8_t get(char32_t ch) const; - - inline const diplomat::capi::CanonicalCombiningClassMap* AsFFI() const; - inline diplomat::capi::CanonicalCombiningClassMap* AsFFI(); - inline static const CanonicalCombiningClassMap* FromFFI(const diplomat::capi::CanonicalCombiningClassMap* ptr); - inline static CanonicalCombiningClassMap* FromFFI(diplomat::capi::CanonicalCombiningClassMap* ptr); - inline static void operator delete(void* ptr); -private: - CanonicalCombiningClassMap() = delete; - CanonicalCombiningClassMap(const CanonicalCombiningClassMap&) = delete; - CanonicalCombiningClassMap(CanonicalCombiningClassMap&&) noexcept = delete; - CanonicalCombiningClassMap operator=(const CanonicalCombiningClassMap&) = delete; - CanonicalCombiningClassMap operator=(CanonicalCombiningClassMap&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CanonicalCombiningClassMap_D_HPP diff --git a/ffi/capi/bindings/cpp/CanonicalCombiningClassMap.hpp b/ffi/capi/bindings/cpp/CanonicalCombiningClassMap.hpp deleted file mode 100644 index 6a763422ad7..00000000000 --- a/ffi/capi/bindings/cpp/CanonicalCombiningClassMap.hpp +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef CanonicalCombiningClassMap_HPP -#define CanonicalCombiningClassMap_HPP - -#include "CanonicalCombiningClassMap.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_CanonicalCombiningClassMap_create_mv1_result {union {diplomat::capi::CanonicalCombiningClassMap* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CanonicalCombiningClassMap_create_mv1_result; - icu4x_CanonicalCombiningClassMap_create_mv1_result icu4x_CanonicalCombiningClassMap_create_mv1(const diplomat::capi::DataProvider* provider); - - uint8_t icu4x_CanonicalCombiningClassMap_get_mv1(const diplomat::capi::CanonicalCombiningClassMap* self, char32_t ch); - - - void icu4x_CanonicalCombiningClassMap_destroy_mv1(CanonicalCombiningClassMap* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<CanonicalCombiningClassMap>, DataError> CanonicalCombiningClassMap::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CanonicalCombiningClassMap_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CanonicalCombiningClassMap>, DataError>(diplomat::Ok<std::unique_ptr<CanonicalCombiningClassMap>>(std::unique_ptr<CanonicalCombiningClassMap>(CanonicalCombiningClassMap::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CanonicalCombiningClassMap>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline uint8_t CanonicalCombiningClassMap::get(char32_t ch) const { - auto result = diplomat::capi::icu4x_CanonicalCombiningClassMap_get_mv1(this->AsFFI(), - ch); - return result; -} - -inline const diplomat::capi::CanonicalCombiningClassMap* CanonicalCombiningClassMap::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CanonicalCombiningClassMap*>(this); -} - -inline diplomat::capi::CanonicalCombiningClassMap* CanonicalCombiningClassMap::AsFFI() { - return reinterpret_cast<diplomat::capi::CanonicalCombiningClassMap*>(this); -} - -inline const CanonicalCombiningClassMap* CanonicalCombiningClassMap::FromFFI(const diplomat::capi::CanonicalCombiningClassMap* ptr) { - return reinterpret_cast<const CanonicalCombiningClassMap*>(ptr); -} - -inline CanonicalCombiningClassMap* CanonicalCombiningClassMap::FromFFI(diplomat::capi::CanonicalCombiningClassMap* ptr) { - return reinterpret_cast<CanonicalCombiningClassMap*>(ptr); -} - -inline void CanonicalCombiningClassMap::operator delete(void* ptr) { - diplomat::capi::icu4x_CanonicalCombiningClassMap_destroy_mv1(reinterpret_cast<diplomat::capi::CanonicalCombiningClassMap*>(ptr)); -} - - -#endif // CanonicalCombiningClassMap_HPP diff --git a/ffi/capi/bindings/cpp/CanonicalComposition.d.hpp b/ffi/capi/bindings/cpp/CanonicalComposition.d.hpp deleted file mode 100644 index ec09fbe36cc..00000000000 --- a/ffi/capi/bindings/cpp/CanonicalComposition.d.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef CanonicalComposition_D_HPP -#define CanonicalComposition_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct CanonicalComposition; -} // namespace capi -} // namespace - -class CanonicalComposition { -public: - - inline static diplomat::result<std::unique_ptr<CanonicalComposition>, DataError> create(const DataProvider& provider); - - inline char32_t compose(char32_t starter, char32_t second) const; - - inline const diplomat::capi::CanonicalComposition* AsFFI() const; - inline diplomat::capi::CanonicalComposition* AsFFI(); - inline static const CanonicalComposition* FromFFI(const diplomat::capi::CanonicalComposition* ptr); - inline static CanonicalComposition* FromFFI(diplomat::capi::CanonicalComposition* ptr); - inline static void operator delete(void* ptr); -private: - CanonicalComposition() = delete; - CanonicalComposition(const CanonicalComposition&) = delete; - CanonicalComposition(CanonicalComposition&&) noexcept = delete; - CanonicalComposition operator=(const CanonicalComposition&) = delete; - CanonicalComposition operator=(CanonicalComposition&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CanonicalComposition_D_HPP diff --git a/ffi/capi/bindings/cpp/CanonicalComposition.hpp b/ffi/capi/bindings/cpp/CanonicalComposition.hpp deleted file mode 100644 index 9631407bbbe..00000000000 --- a/ffi/capi/bindings/cpp/CanonicalComposition.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef CanonicalComposition_HPP -#define CanonicalComposition_HPP - -#include "CanonicalComposition.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_CanonicalComposition_create_mv1_result {union {diplomat::capi::CanonicalComposition* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CanonicalComposition_create_mv1_result; - icu4x_CanonicalComposition_create_mv1_result icu4x_CanonicalComposition_create_mv1(const diplomat::capi::DataProvider* provider); - - char32_t icu4x_CanonicalComposition_compose_mv1(const diplomat::capi::CanonicalComposition* self, char32_t starter, char32_t second); - - - void icu4x_CanonicalComposition_destroy_mv1(CanonicalComposition* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<CanonicalComposition>, DataError> CanonicalComposition::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CanonicalComposition_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CanonicalComposition>, DataError>(diplomat::Ok<std::unique_ptr<CanonicalComposition>>(std::unique_ptr<CanonicalComposition>(CanonicalComposition::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CanonicalComposition>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline char32_t CanonicalComposition::compose(char32_t starter, char32_t second) const { - auto result = diplomat::capi::icu4x_CanonicalComposition_compose_mv1(this->AsFFI(), - starter, - second); - return result; -} - -inline const diplomat::capi::CanonicalComposition* CanonicalComposition::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CanonicalComposition*>(this); -} - -inline diplomat::capi::CanonicalComposition* CanonicalComposition::AsFFI() { - return reinterpret_cast<diplomat::capi::CanonicalComposition*>(this); -} - -inline const CanonicalComposition* CanonicalComposition::FromFFI(const diplomat::capi::CanonicalComposition* ptr) { - return reinterpret_cast<const CanonicalComposition*>(ptr); -} - -inline CanonicalComposition* CanonicalComposition::FromFFI(diplomat::capi::CanonicalComposition* ptr) { - return reinterpret_cast<CanonicalComposition*>(ptr); -} - -inline void CanonicalComposition::operator delete(void* ptr) { - diplomat::capi::icu4x_CanonicalComposition_destroy_mv1(reinterpret_cast<diplomat::capi::CanonicalComposition*>(ptr)); -} - - -#endif // CanonicalComposition_HPP diff --git a/ffi/capi/bindings/cpp/CanonicalDecomposition.d.hpp b/ffi/capi/bindings/cpp/CanonicalDecomposition.d.hpp deleted file mode 100644 index 13278a23213..00000000000 --- a/ffi/capi/bindings/cpp/CanonicalDecomposition.d.hpp +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef CanonicalDecomposition_D_HPP -#define CanonicalDecomposition_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -struct Decomposed; -class DataError; - - -namespace diplomat { -namespace capi { - struct CanonicalDecomposition; -} // namespace capi -} // namespace - -class CanonicalDecomposition { -public: - - inline static diplomat::result<std::unique_ptr<CanonicalDecomposition>, DataError> create(const DataProvider& provider); - - inline Decomposed decompose(char32_t c) const; - - inline const diplomat::capi::CanonicalDecomposition* AsFFI() const; - inline diplomat::capi::CanonicalDecomposition* AsFFI(); - inline static const CanonicalDecomposition* FromFFI(const diplomat::capi::CanonicalDecomposition* ptr); - inline static CanonicalDecomposition* FromFFI(diplomat::capi::CanonicalDecomposition* ptr); - inline static void operator delete(void* ptr); -private: - CanonicalDecomposition() = delete; - CanonicalDecomposition(const CanonicalDecomposition&) = delete; - CanonicalDecomposition(CanonicalDecomposition&&) noexcept = delete; - CanonicalDecomposition operator=(const CanonicalDecomposition&) = delete; - CanonicalDecomposition operator=(CanonicalDecomposition&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CanonicalDecomposition_D_HPP diff --git a/ffi/capi/bindings/cpp/CanonicalDecomposition.hpp b/ffi/capi/bindings/cpp/CanonicalDecomposition.hpp deleted file mode 100644 index 5be84a5bbb0..00000000000 --- a/ffi/capi/bindings/cpp/CanonicalDecomposition.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef CanonicalDecomposition_HPP -#define CanonicalDecomposition_HPP - -#include "CanonicalDecomposition.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Decomposed.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_CanonicalDecomposition_create_mv1_result {union {diplomat::capi::CanonicalDecomposition* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CanonicalDecomposition_create_mv1_result; - icu4x_CanonicalDecomposition_create_mv1_result icu4x_CanonicalDecomposition_create_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::Decomposed icu4x_CanonicalDecomposition_decompose_mv1(const diplomat::capi::CanonicalDecomposition* self, char32_t c); - - - void icu4x_CanonicalDecomposition_destroy_mv1(CanonicalDecomposition* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<CanonicalDecomposition>, DataError> CanonicalDecomposition::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CanonicalDecomposition_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CanonicalDecomposition>, DataError>(diplomat::Ok<std::unique_ptr<CanonicalDecomposition>>(std::unique_ptr<CanonicalDecomposition>(CanonicalDecomposition::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CanonicalDecomposition>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline Decomposed CanonicalDecomposition::decompose(char32_t c) const { - auto result = diplomat::capi::icu4x_CanonicalDecomposition_decompose_mv1(this->AsFFI(), - c); - return Decomposed::FromFFI(result); -} - -inline const diplomat::capi::CanonicalDecomposition* CanonicalDecomposition::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CanonicalDecomposition*>(this); -} - -inline diplomat::capi::CanonicalDecomposition* CanonicalDecomposition::AsFFI() { - return reinterpret_cast<diplomat::capi::CanonicalDecomposition*>(this); -} - -inline const CanonicalDecomposition* CanonicalDecomposition::FromFFI(const diplomat::capi::CanonicalDecomposition* ptr) { - return reinterpret_cast<const CanonicalDecomposition*>(ptr); -} - -inline CanonicalDecomposition* CanonicalDecomposition::FromFFI(diplomat::capi::CanonicalDecomposition* ptr) { - return reinterpret_cast<CanonicalDecomposition*>(ptr); -} - -inline void CanonicalDecomposition::operator delete(void* ptr) { - diplomat::capi::icu4x_CanonicalDecomposition_destroy_mv1(reinterpret_cast<diplomat::capi::CanonicalDecomposition*>(ptr)); -} - - -#endif // CanonicalDecomposition_HPP diff --git a/ffi/capi/bindings/cpp/CaseMapCloser.d.hpp b/ffi/capi/bindings/cpp/CaseMapCloser.d.hpp deleted file mode 100644 index a4d2ab2422c..00000000000 --- a/ffi/capi/bindings/cpp/CaseMapCloser.d.hpp +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef CaseMapCloser_D_HPP -#define CaseMapCloser_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointSetBuilder; } -class CodePointSetBuilder; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct CaseMapCloser; -} // namespace capi -} // namespace - -class CaseMapCloser { -public: - - inline static diplomat::result<std::unique_ptr<CaseMapCloser>, DataError> create(const DataProvider& provider); - - inline void add_case_closure_to(char32_t c, CodePointSetBuilder& builder) const; - - inline bool add_string_case_closure_to(std::string_view s, CodePointSetBuilder& builder) const; - - inline const diplomat::capi::CaseMapCloser* AsFFI() const; - inline diplomat::capi::CaseMapCloser* AsFFI(); - inline static const CaseMapCloser* FromFFI(const diplomat::capi::CaseMapCloser* ptr); - inline static CaseMapCloser* FromFFI(diplomat::capi::CaseMapCloser* ptr); - inline static void operator delete(void* ptr); -private: - CaseMapCloser() = delete; - CaseMapCloser(const CaseMapCloser&) = delete; - CaseMapCloser(CaseMapCloser&&) noexcept = delete; - CaseMapCloser operator=(const CaseMapCloser&) = delete; - CaseMapCloser operator=(CaseMapCloser&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CaseMapCloser_D_HPP diff --git a/ffi/capi/bindings/cpp/CaseMapCloser.hpp b/ffi/capi/bindings/cpp/CaseMapCloser.hpp deleted file mode 100644 index 856db551bf5..00000000000 --- a/ffi/capi/bindings/cpp/CaseMapCloser.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef CaseMapCloser_HPP -#define CaseMapCloser_HPP - -#include "CaseMapCloser.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointSetBuilder.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_CaseMapCloser_create_mv1_result {union {diplomat::capi::CaseMapCloser* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CaseMapCloser_create_mv1_result; - icu4x_CaseMapCloser_create_mv1_result icu4x_CaseMapCloser_create_mv1(const diplomat::capi::DataProvider* provider); - - void icu4x_CaseMapCloser_add_case_closure_to_mv1(const diplomat::capi::CaseMapCloser* self, char32_t c, diplomat::capi::CodePointSetBuilder* builder); - - bool icu4x_CaseMapCloser_add_string_case_closure_to_mv1(const diplomat::capi::CaseMapCloser* self, const char* s_data, size_t s_len, diplomat::capi::CodePointSetBuilder* builder); - - - void icu4x_CaseMapCloser_destroy_mv1(CaseMapCloser* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<CaseMapCloser>, DataError> CaseMapCloser::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CaseMapCloser_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CaseMapCloser>, DataError>(diplomat::Ok<std::unique_ptr<CaseMapCloser>>(std::unique_ptr<CaseMapCloser>(CaseMapCloser::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CaseMapCloser>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline void CaseMapCloser::add_case_closure_to(char32_t c, CodePointSetBuilder& builder) const { - diplomat::capi::icu4x_CaseMapCloser_add_case_closure_to_mv1(this->AsFFI(), - c, - builder.AsFFI()); -} - -inline bool CaseMapCloser::add_string_case_closure_to(std::string_view s, CodePointSetBuilder& builder) const { - auto result = diplomat::capi::icu4x_CaseMapCloser_add_string_case_closure_to_mv1(this->AsFFI(), - s.data(), - s.size(), - builder.AsFFI()); - return result; -} - -inline const diplomat::capi::CaseMapCloser* CaseMapCloser::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CaseMapCloser*>(this); -} - -inline diplomat::capi::CaseMapCloser* CaseMapCloser::AsFFI() { - return reinterpret_cast<diplomat::capi::CaseMapCloser*>(this); -} - -inline const CaseMapCloser* CaseMapCloser::FromFFI(const diplomat::capi::CaseMapCloser* ptr) { - return reinterpret_cast<const CaseMapCloser*>(ptr); -} - -inline CaseMapCloser* CaseMapCloser::FromFFI(diplomat::capi::CaseMapCloser* ptr) { - return reinterpret_cast<CaseMapCloser*>(ptr); -} - -inline void CaseMapCloser::operator delete(void* ptr) { - diplomat::capi::icu4x_CaseMapCloser_destroy_mv1(reinterpret_cast<diplomat::capi::CaseMapCloser*>(ptr)); -} - - -#endif // CaseMapCloser_HPP diff --git a/ffi/capi/bindings/cpp/CaseMapper.d.hpp b/ffi/capi/bindings/cpp/CaseMapper.d.hpp deleted file mode 100644 index 708781ca618..00000000000 --- a/ffi/capi/bindings/cpp/CaseMapper.d.hpp +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef CaseMapper_D_HPP -#define CaseMapper_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointSetBuilder; } -class CodePointSetBuilder; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -struct TitlecaseOptionsV1; -class DataError; - - -namespace diplomat { -namespace capi { - struct CaseMapper; -} // namespace capi -} // namespace - -class CaseMapper { -public: - - inline static diplomat::result<std::unique_ptr<CaseMapper>, DataError> create(const DataProvider& provider); - - inline diplomat::result<std::string, diplomat::Utf8Error> lowercase(std::string_view s, const Locale& locale) const; - - inline diplomat::result<std::string, diplomat::Utf8Error> uppercase(std::string_view s, const Locale& locale) const; - - inline diplomat::result<std::string, diplomat::Utf8Error> titlecase_segment_with_only_case_data_v1(std::string_view s, const Locale& locale, TitlecaseOptionsV1 options) const; - - inline diplomat::result<std::string, diplomat::Utf8Error> fold(std::string_view s) const; - - inline diplomat::result<std::string, diplomat::Utf8Error> fold_turkic(std::string_view s) const; - - inline void add_case_closure_to(char32_t c, CodePointSetBuilder& builder) const; - - inline char32_t simple_lowercase(char32_t ch) const; - - inline char32_t simple_uppercase(char32_t ch) const; - - inline char32_t simple_titlecase(char32_t ch) const; - - inline char32_t simple_fold(char32_t ch) const; - - inline char32_t simple_fold_turkic(char32_t ch) const; - - inline const diplomat::capi::CaseMapper* AsFFI() const; - inline diplomat::capi::CaseMapper* AsFFI(); - inline static const CaseMapper* FromFFI(const diplomat::capi::CaseMapper* ptr); - inline static CaseMapper* FromFFI(diplomat::capi::CaseMapper* ptr); - inline static void operator delete(void* ptr); -private: - CaseMapper() = delete; - CaseMapper(const CaseMapper&) = delete; - CaseMapper(CaseMapper&&) noexcept = delete; - CaseMapper operator=(const CaseMapper&) = delete; - CaseMapper operator=(CaseMapper&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CaseMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/CaseMapper.hpp b/ffi/capi/bindings/cpp/CaseMapper.hpp deleted file mode 100644 index 6877b59105a..00000000000 --- a/ffi/capi/bindings/cpp/CaseMapper.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef CaseMapper_HPP -#define CaseMapper_HPP - -#include "CaseMapper.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointSetBuilder.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "TitlecaseOptionsV1.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_CaseMapper_create_mv1_result {union {diplomat::capi::CaseMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CaseMapper_create_mv1_result; - icu4x_CaseMapper_create_mv1_result icu4x_CaseMapper_create_mv1(const diplomat::capi::DataProvider* provider); - - void icu4x_CaseMapper_lowercase_mv1(const diplomat::capi::CaseMapper* self, const char* s_data, size_t s_len, const diplomat::capi::Locale* locale, diplomat::capi::DiplomatWrite* write); - - void icu4x_CaseMapper_uppercase_mv1(const diplomat::capi::CaseMapper* self, const char* s_data, size_t s_len, const diplomat::capi::Locale* locale, diplomat::capi::DiplomatWrite* write); - - void icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(const diplomat::capi::CaseMapper* self, const char* s_data, size_t s_len, const diplomat::capi::Locale* locale, diplomat::capi::TitlecaseOptionsV1 options, diplomat::capi::DiplomatWrite* write); - - void icu4x_CaseMapper_fold_mv1(const diplomat::capi::CaseMapper* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); - - void icu4x_CaseMapper_fold_turkic_mv1(const diplomat::capi::CaseMapper* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); - - void icu4x_CaseMapper_add_case_closure_to_mv1(const diplomat::capi::CaseMapper* self, char32_t c, diplomat::capi::CodePointSetBuilder* builder); - - char32_t icu4x_CaseMapper_simple_lowercase_mv1(const diplomat::capi::CaseMapper* self, char32_t ch); - - char32_t icu4x_CaseMapper_simple_uppercase_mv1(const diplomat::capi::CaseMapper* self, char32_t ch); - - char32_t icu4x_CaseMapper_simple_titlecase_mv1(const diplomat::capi::CaseMapper* self, char32_t ch); - - char32_t icu4x_CaseMapper_simple_fold_mv1(const diplomat::capi::CaseMapper* self, char32_t ch); - - char32_t icu4x_CaseMapper_simple_fold_turkic_mv1(const diplomat::capi::CaseMapper* self, char32_t ch); - - - void icu4x_CaseMapper_destroy_mv1(CaseMapper* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<CaseMapper>, DataError> CaseMapper::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CaseMapper_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CaseMapper>, DataError>(diplomat::Ok<std::unique_ptr<CaseMapper>>(std::unique_ptr<CaseMapper>(CaseMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CaseMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::string, diplomat::Utf8Error> CaseMapper::lowercase(std::string_view s, const Locale& locale) const { - if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_CaseMapper_lowercase_mv1(this->AsFFI(), - s.data(), - s.size(), - locale.AsFFI(), - &write); - return diplomat::Ok<std::string>(std::move(output)); -} - -inline diplomat::result<std::string, diplomat::Utf8Error> CaseMapper::uppercase(std::string_view s, const Locale& locale) const { - if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_CaseMapper_uppercase_mv1(this->AsFFI(), - s.data(), - s.size(), - locale.AsFFI(), - &write); - return diplomat::Ok<std::string>(std::move(output)); -} - -inline diplomat::result<std::string, diplomat::Utf8Error> CaseMapper::titlecase_segment_with_only_case_data_v1(std::string_view s, const Locale& locale, TitlecaseOptionsV1 options) const { - if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this->AsFFI(), - s.data(), - s.size(), - locale.AsFFI(), - options.AsFFI(), - &write); - return diplomat::Ok<std::string>(std::move(output)); -} - -inline diplomat::result<std::string, diplomat::Utf8Error> CaseMapper::fold(std::string_view s) const { - if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_CaseMapper_fold_mv1(this->AsFFI(), - s.data(), - s.size(), - &write); - return diplomat::Ok<std::string>(std::move(output)); -} - -inline diplomat::result<std::string, diplomat::Utf8Error> CaseMapper::fold_turkic(std::string_view s) const { - if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_CaseMapper_fold_turkic_mv1(this->AsFFI(), - s.data(), - s.size(), - &write); - return diplomat::Ok<std::string>(std::move(output)); -} - -inline void CaseMapper::add_case_closure_to(char32_t c, CodePointSetBuilder& builder) const { - diplomat::capi::icu4x_CaseMapper_add_case_closure_to_mv1(this->AsFFI(), - c, - builder.AsFFI()); -} - -inline char32_t CaseMapper::simple_lowercase(char32_t ch) const { - auto result = diplomat::capi::icu4x_CaseMapper_simple_lowercase_mv1(this->AsFFI(), - ch); - return result; -} - -inline char32_t CaseMapper::simple_uppercase(char32_t ch) const { - auto result = diplomat::capi::icu4x_CaseMapper_simple_uppercase_mv1(this->AsFFI(), - ch); - return result; -} - -inline char32_t CaseMapper::simple_titlecase(char32_t ch) const { - auto result = diplomat::capi::icu4x_CaseMapper_simple_titlecase_mv1(this->AsFFI(), - ch); - return result; -} - -inline char32_t CaseMapper::simple_fold(char32_t ch) const { - auto result = diplomat::capi::icu4x_CaseMapper_simple_fold_mv1(this->AsFFI(), - ch); - return result; -} - -inline char32_t CaseMapper::simple_fold_turkic(char32_t ch) const { - auto result = diplomat::capi::icu4x_CaseMapper_simple_fold_turkic_mv1(this->AsFFI(), - ch); - return result; -} - -inline const diplomat::capi::CaseMapper* CaseMapper::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CaseMapper*>(this); -} - -inline diplomat::capi::CaseMapper* CaseMapper::AsFFI() { - return reinterpret_cast<diplomat::capi::CaseMapper*>(this); -} - -inline const CaseMapper* CaseMapper::FromFFI(const diplomat::capi::CaseMapper* ptr) { - return reinterpret_cast<const CaseMapper*>(ptr); -} - -inline CaseMapper* CaseMapper::FromFFI(diplomat::capi::CaseMapper* ptr) { - return reinterpret_cast<CaseMapper*>(ptr); -} - -inline void CaseMapper::operator delete(void* ptr) { - diplomat::capi::icu4x_CaseMapper_destroy_mv1(reinterpret_cast<diplomat::capi::CaseMapper*>(ptr)); -} - - -#endif // CaseMapper_HPP diff --git a/ffi/capi/bindings/cpp/CodePointMapData16.d.hpp b/ffi/capi/bindings/cpp/CodePointMapData16.d.hpp deleted file mode 100644 index 114bb6348e4..00000000000 --- a/ffi/capi/bindings/cpp/CodePointMapData16.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef CodePointMapData16_D_HPP -#define CodePointMapData16_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointRangeIterator; } -class CodePointRangeIterator; -namespace diplomat::capi { struct CodePointSetData; } -class CodePointSetData; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct CodePointMapData16; -} // namespace capi -} // namespace - -class CodePointMapData16 { -public: - - inline uint16_t get(char32_t cp) const; - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges_for_value(uint16_t value) const; - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges_for_value_complemented(uint16_t value) const; - - inline std::unique_ptr<CodePointSetData> get_set_for_value(uint16_t value) const; - - inline static diplomat::result<std::unique_ptr<CodePointMapData16>, DataError> load_script(const DataProvider& provider); - - inline const diplomat::capi::CodePointMapData16* AsFFI() const; - inline diplomat::capi::CodePointMapData16* AsFFI(); - inline static const CodePointMapData16* FromFFI(const diplomat::capi::CodePointMapData16* ptr); - inline static CodePointMapData16* FromFFI(diplomat::capi::CodePointMapData16* ptr); - inline static void operator delete(void* ptr); -private: - CodePointMapData16() = delete; - CodePointMapData16(const CodePointMapData16&) = delete; - CodePointMapData16(CodePointMapData16&&) noexcept = delete; - CodePointMapData16 operator=(const CodePointMapData16&) = delete; - CodePointMapData16 operator=(CodePointMapData16&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CodePointMapData16_D_HPP diff --git a/ffi/capi/bindings/cpp/CodePointMapData16.hpp b/ffi/capi/bindings/cpp/CodePointMapData16.hpp deleted file mode 100644 index 09c87f3f12c..00000000000 --- a/ffi/capi/bindings/cpp/CodePointMapData16.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef CodePointMapData16_HPP -#define CodePointMapData16_HPP - -#include "CodePointMapData16.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointRangeIterator.hpp" -#include "CodePointSetData.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - uint16_t icu4x_CodePointMapData16_get_mv1(const diplomat::capi::CodePointMapData16* self, char32_t cp); - - diplomat::capi::CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_mv1(const diplomat::capi::CodePointMapData16* self, uint16_t value); - - diplomat::capi::CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(const diplomat::capi::CodePointMapData16* self, uint16_t value); - - diplomat::capi::CodePointSetData* icu4x_CodePointMapData16_get_set_for_value_mv1(const diplomat::capi::CodePointMapData16* self, uint16_t value); - - typedef struct icu4x_CodePointMapData16_load_script_mv1_result {union {diplomat::capi::CodePointMapData16* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData16_load_script_mv1_result; - icu4x_CodePointMapData16_load_script_mv1_result icu4x_CodePointMapData16_load_script_mv1(const diplomat::capi::DataProvider* provider); - - - void icu4x_CodePointMapData16_destroy_mv1(CodePointMapData16* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline uint16_t CodePointMapData16::get(char32_t cp) const { - auto result = diplomat::capi::icu4x_CodePointMapData16_get_mv1(this->AsFFI(), - cp); - return result; -} - -inline std::unique_ptr<CodePointRangeIterator> CodePointMapData16::iter_ranges_for_value(uint16_t value) const { - auto result = diplomat::capi::icu4x_CodePointMapData16_iter_ranges_for_value_mv1(this->AsFFI(), - value); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline std::unique_ptr<CodePointRangeIterator> CodePointMapData16::iter_ranges_for_value_complemented(uint16_t value) const { - auto result = diplomat::capi::icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(this->AsFFI(), - value); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline std::unique_ptr<CodePointSetData> CodePointMapData16::get_set_for_value(uint16_t value) const { - auto result = diplomat::capi::icu4x_CodePointMapData16_get_set_for_value_mv1(this->AsFFI(), - value); - return std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData16>, DataError> CodePointMapData16::load_script(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData16_load_script_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData16>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData16>>(std::unique_ptr<CodePointMapData16>(CodePointMapData16::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData16>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline const diplomat::capi::CodePointMapData16* CodePointMapData16::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CodePointMapData16*>(this); -} - -inline diplomat::capi::CodePointMapData16* CodePointMapData16::AsFFI() { - return reinterpret_cast<diplomat::capi::CodePointMapData16*>(this); -} - -inline const CodePointMapData16* CodePointMapData16::FromFFI(const diplomat::capi::CodePointMapData16* ptr) { - return reinterpret_cast<const CodePointMapData16*>(ptr); -} - -inline CodePointMapData16* CodePointMapData16::FromFFI(diplomat::capi::CodePointMapData16* ptr) { - return reinterpret_cast<CodePointMapData16*>(ptr); -} - -inline void CodePointMapData16::operator delete(void* ptr) { - diplomat::capi::icu4x_CodePointMapData16_destroy_mv1(reinterpret_cast<diplomat::capi::CodePointMapData16*>(ptr)); -} - - -#endif // CodePointMapData16_HPP diff --git a/ffi/capi/bindings/cpp/CodePointMapData8.d.hpp b/ffi/capi/bindings/cpp/CodePointMapData8.d.hpp deleted file mode 100644 index 4852bf5b75e..00000000000 --- a/ffi/capi/bindings/cpp/CodePointMapData8.d.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef CodePointMapData8_D_HPP -#define CodePointMapData8_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointRangeIterator; } -class CodePointRangeIterator; -namespace diplomat::capi { struct CodePointSetData; } -class CodePointSetData; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct CodePointMapData8; -} // namespace capi -} // namespace - -class CodePointMapData8 { -public: - - inline uint8_t get(char32_t cp) const; - - inline static uint32_t general_category_to_mask(uint8_t gc); - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges_for_value(uint8_t value) const; - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges_for_value_complemented(uint8_t value) const; - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges_for_mask(uint32_t mask) const; - - inline std::unique_ptr<CodePointSetData> get_set_for_value(uint8_t value) const; - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_general_category(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_bidi_class(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_east_asian_width(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_hangul_syllable_type(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_indic_syllabic_category(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_line_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> try_grapheme_cluster_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_word_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_sentence_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> load_joining_type(const DataProvider& provider); - - inline const diplomat::capi::CodePointMapData8* AsFFI() const; - inline diplomat::capi::CodePointMapData8* AsFFI(); - inline static const CodePointMapData8* FromFFI(const diplomat::capi::CodePointMapData8* ptr); - inline static CodePointMapData8* FromFFI(diplomat::capi::CodePointMapData8* ptr); - inline static void operator delete(void* ptr); -private: - CodePointMapData8() = delete; - CodePointMapData8(const CodePointMapData8&) = delete; - CodePointMapData8(CodePointMapData8&&) noexcept = delete; - CodePointMapData8 operator=(const CodePointMapData8&) = delete; - CodePointMapData8 operator=(CodePointMapData8&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CodePointMapData8_D_HPP diff --git a/ffi/capi/bindings/cpp/CodePointMapData8.hpp b/ffi/capi/bindings/cpp/CodePointMapData8.hpp deleted file mode 100644 index 10289193b2f..00000000000 --- a/ffi/capi/bindings/cpp/CodePointMapData8.hpp +++ /dev/null @@ -1,178 +0,0 @@ -#ifndef CodePointMapData8_HPP -#define CodePointMapData8_HPP - -#include "CodePointMapData8.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointRangeIterator.hpp" -#include "CodePointSetData.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - uint8_t icu4x_CodePointMapData8_get_mv1(const diplomat::capi::CodePointMapData8* self, char32_t cp); - - uint32_t icu4x_CodePointMapData8_general_category_to_mask_mv1(uint8_t gc); - - diplomat::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_mv1(const diplomat::capi::CodePointMapData8* self, uint8_t value); - - diplomat::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(const diplomat::capi::CodePointMapData8* self, uint8_t value); - - diplomat::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_mask_mv1(const diplomat::capi::CodePointMapData8* self, uint32_t mask); - - diplomat::capi::CodePointSetData* icu4x_CodePointMapData8_get_set_for_value_mv1(const diplomat::capi::CodePointMapData8* self, uint8_t value); - - typedef struct icu4x_CodePointMapData8_load_general_category_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_general_category_mv1_result; - icu4x_CodePointMapData8_load_general_category_mv1_result icu4x_CodePointMapData8_load_general_category_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_bidi_class_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_bidi_class_mv1_result; - icu4x_CodePointMapData8_load_bidi_class_mv1_result icu4x_CodePointMapData8_load_bidi_class_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_east_asian_width_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_east_asian_width_mv1_result; - icu4x_CodePointMapData8_load_east_asian_width_mv1_result icu4x_CodePointMapData8_load_east_asian_width_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_hangul_syllable_type_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_hangul_syllable_type_mv1_result; - icu4x_CodePointMapData8_load_hangul_syllable_type_mv1_result icu4x_CodePointMapData8_load_hangul_syllable_type_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_indic_syllabic_category_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_indic_syllabic_category_mv1_result; - icu4x_CodePointMapData8_load_indic_syllabic_category_mv1_result icu4x_CodePointMapData8_load_indic_syllabic_category_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_line_break_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_line_break_mv1_result; - icu4x_CodePointMapData8_load_line_break_mv1_result icu4x_CodePointMapData8_load_line_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1_result; - icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1_result icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_word_break_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_word_break_mv1_result; - icu4x_CodePointMapData8_load_word_break_mv1_result icu4x_CodePointMapData8_load_word_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_sentence_break_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_sentence_break_mv1_result; - icu4x_CodePointMapData8_load_sentence_break_mv1_result icu4x_CodePointMapData8_load_sentence_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointMapData8_load_joining_type_mv1_result {union {diplomat::capi::CodePointMapData8* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_joining_type_mv1_result; - icu4x_CodePointMapData8_load_joining_type_mv1_result icu4x_CodePointMapData8_load_joining_type_mv1(const diplomat::capi::DataProvider* provider); - - - void icu4x_CodePointMapData8_destroy_mv1(CodePointMapData8* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline uint8_t CodePointMapData8::get(char32_t cp) const { - auto result = diplomat::capi::icu4x_CodePointMapData8_get_mv1(this->AsFFI(), - cp); - return result; -} - -inline uint32_t CodePointMapData8::general_category_to_mask(uint8_t gc) { - auto result = diplomat::capi::icu4x_CodePointMapData8_general_category_to_mask_mv1(gc); - return result; -} - -inline std::unique_ptr<CodePointRangeIterator> CodePointMapData8::iter_ranges_for_value(uint8_t value) const { - auto result = diplomat::capi::icu4x_CodePointMapData8_iter_ranges_for_value_mv1(this->AsFFI(), - value); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline std::unique_ptr<CodePointRangeIterator> CodePointMapData8::iter_ranges_for_value_complemented(uint8_t value) const { - auto result = diplomat::capi::icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(this->AsFFI(), - value); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline std::unique_ptr<CodePointRangeIterator> CodePointMapData8::iter_ranges_for_mask(uint32_t mask) const { - auto result = diplomat::capi::icu4x_CodePointMapData8_iter_ranges_for_mask_mv1(this->AsFFI(), - mask); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline std::unique_ptr<CodePointSetData> CodePointMapData8::get_set_for_value(uint8_t value) const { - auto result = diplomat::capi::icu4x_CodePointMapData8_get_set_for_value_mv1(this->AsFFI(), - value); - return std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_general_category(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_general_category_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_bidi_class(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_bidi_class_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_east_asian_width(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_east_asian_width_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_hangul_syllable_type(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_hangul_syllable_type_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_indic_syllabic_category(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_indic_syllabic_category_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_line_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_line_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::try_grapheme_cluster_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_word_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_word_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_sentence_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_sentence_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointMapData8>, DataError> CodePointMapData8::load_joining_type(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointMapData8_load_joining_type_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Ok<std::unique_ptr<CodePointMapData8>>(std::unique_ptr<CodePointMapData8>(CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointMapData8>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline const diplomat::capi::CodePointMapData8* CodePointMapData8::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CodePointMapData8*>(this); -} - -inline diplomat::capi::CodePointMapData8* CodePointMapData8::AsFFI() { - return reinterpret_cast<diplomat::capi::CodePointMapData8*>(this); -} - -inline const CodePointMapData8* CodePointMapData8::FromFFI(const diplomat::capi::CodePointMapData8* ptr) { - return reinterpret_cast<const CodePointMapData8*>(ptr); -} - -inline CodePointMapData8* CodePointMapData8::FromFFI(diplomat::capi::CodePointMapData8* ptr) { - return reinterpret_cast<CodePointMapData8*>(ptr); -} - -inline void CodePointMapData8::operator delete(void* ptr) { - diplomat::capi::icu4x_CodePointMapData8_destroy_mv1(reinterpret_cast<diplomat::capi::CodePointMapData8*>(ptr)); -} - - -#endif // CodePointMapData8_HPP diff --git a/ffi/capi/bindings/cpp/CodePointRangeIterator.d.hpp b/ffi/capi/bindings/cpp/CodePointRangeIterator.d.hpp deleted file mode 100644 index 17ecf0c426b..00000000000 --- a/ffi/capi/bindings/cpp/CodePointRangeIterator.d.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef CodePointRangeIterator_D_HPP -#define CodePointRangeIterator_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -struct CodePointRangeIteratorResult; - - -namespace diplomat { -namespace capi { - struct CodePointRangeIterator; -} // namespace capi -} // namespace - -class CodePointRangeIterator { -public: - - inline CodePointRangeIteratorResult next(); - - inline const diplomat::capi::CodePointRangeIterator* AsFFI() const; - inline diplomat::capi::CodePointRangeIterator* AsFFI(); - inline static const CodePointRangeIterator* FromFFI(const diplomat::capi::CodePointRangeIterator* ptr); - inline static CodePointRangeIterator* FromFFI(diplomat::capi::CodePointRangeIterator* ptr); - inline static void operator delete(void* ptr); -private: - CodePointRangeIterator() = delete; - CodePointRangeIterator(const CodePointRangeIterator&) = delete; - CodePointRangeIterator(CodePointRangeIterator&&) noexcept = delete; - CodePointRangeIterator operator=(const CodePointRangeIterator&) = delete; - CodePointRangeIterator operator=(CodePointRangeIterator&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CodePointRangeIterator_D_HPP diff --git a/ffi/capi/bindings/cpp/CodePointRangeIterator.hpp b/ffi/capi/bindings/cpp/CodePointRangeIterator.hpp deleted file mode 100644 index 0a31fab3d67..00000000000 --- a/ffi/capi/bindings/cpp/CodePointRangeIterator.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef CodePointRangeIterator_HPP -#define CodePointRangeIterator_HPP - -#include "CodePointRangeIterator.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointRangeIteratorResult.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::CodePointRangeIteratorResult icu4x_CodePointRangeIterator_next_mv1(diplomat::capi::CodePointRangeIterator* self); - - - void icu4x_CodePointRangeIterator_destroy_mv1(CodePointRangeIterator* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline CodePointRangeIteratorResult CodePointRangeIterator::next() { - auto result = diplomat::capi::icu4x_CodePointRangeIterator_next_mv1(this->AsFFI()); - return CodePointRangeIteratorResult::FromFFI(result); -} - -inline const diplomat::capi::CodePointRangeIterator* CodePointRangeIterator::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CodePointRangeIterator*>(this); -} - -inline diplomat::capi::CodePointRangeIterator* CodePointRangeIterator::AsFFI() { - return reinterpret_cast<diplomat::capi::CodePointRangeIterator*>(this); -} - -inline const CodePointRangeIterator* CodePointRangeIterator::FromFFI(const diplomat::capi::CodePointRangeIterator* ptr) { - return reinterpret_cast<const CodePointRangeIterator*>(ptr); -} - -inline CodePointRangeIterator* CodePointRangeIterator::FromFFI(diplomat::capi::CodePointRangeIterator* ptr) { - return reinterpret_cast<CodePointRangeIterator*>(ptr); -} - -inline void CodePointRangeIterator::operator delete(void* ptr) { - diplomat::capi::icu4x_CodePointRangeIterator_destroy_mv1(reinterpret_cast<diplomat::capi::CodePointRangeIterator*>(ptr)); -} - - -#endif // CodePointRangeIterator_HPP diff --git a/ffi/capi/bindings/cpp/CodePointRangeIteratorResult.d.hpp b/ffi/capi/bindings/cpp/CodePointRangeIteratorResult.d.hpp deleted file mode 100644 index 1b7ece1e187..00000000000 --- a/ffi/capi/bindings/cpp/CodePointRangeIteratorResult.d.hpp +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CodePointRangeIteratorResult_D_HPP -#define CodePointRangeIteratorResult_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct CodePointRangeIteratorResult { - uint32_t start; - uint32_t end; - bool done; - }; -} // namespace capi -} // namespace - - -struct CodePointRangeIteratorResult { - uint32_t start; - uint32_t end; - bool done; - - inline diplomat::capi::CodePointRangeIteratorResult AsFFI() const; - inline static CodePointRangeIteratorResult FromFFI(diplomat::capi::CodePointRangeIteratorResult c_struct); -}; - - -#endif // CodePointRangeIteratorResult_D_HPP diff --git a/ffi/capi/bindings/cpp/CodePointRangeIteratorResult.hpp b/ffi/capi/bindings/cpp/CodePointRangeIteratorResult.hpp deleted file mode 100644 index 1159ab6eb7d..00000000000 --- a/ffi/capi/bindings/cpp/CodePointRangeIteratorResult.hpp +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef CodePointRangeIteratorResult_HPP -#define CodePointRangeIteratorResult_HPP - -#include "CodePointRangeIteratorResult.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::CodePointRangeIteratorResult CodePointRangeIteratorResult::AsFFI() const { - return diplomat::capi::CodePointRangeIteratorResult { - /* .start = */ start, - /* .end = */ end, - /* .done = */ done, - }; -} - -inline CodePointRangeIteratorResult CodePointRangeIteratorResult::FromFFI(diplomat::capi::CodePointRangeIteratorResult c_struct) { - return CodePointRangeIteratorResult { - /* .start = */ c_struct.start, - /* .end = */ c_struct.end, - /* .done = */ c_struct.done, - }; -} - - -#endif // CodePointRangeIteratorResult_HPP diff --git a/ffi/capi/bindings/cpp/CodePointSetBuilder.d.hpp b/ffi/capi/bindings/cpp/CodePointSetBuilder.d.hpp deleted file mode 100644 index 275a403a854..00000000000 --- a/ffi/capi/bindings/cpp/CodePointSetBuilder.d.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef CodePointSetBuilder_D_HPP -#define CodePointSetBuilder_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointSetData; } -class CodePointSetData; - - -namespace diplomat { -namespace capi { - struct CodePointSetBuilder; -} // namespace capi -} // namespace - -class CodePointSetBuilder { -public: - - inline static std::unique_ptr<CodePointSetBuilder> create(); - - inline std::unique_ptr<CodePointSetData> build(); - - inline void complement(); - - inline bool is_empty() const; - - inline void add_char(char32_t ch); - - inline void add_inclusive_range(char32_t start, char32_t end); - - inline void add_set(const CodePointSetData& data); - - inline void remove_char(char32_t ch); - - inline void remove_inclusive_range(char32_t start, char32_t end); - - inline void remove_set(const CodePointSetData& data); - - inline void retain_char(char32_t ch); - - inline void retain_inclusive_range(char32_t start, char32_t end); - - inline void retain_set(const CodePointSetData& data); - - inline void complement_char(char32_t ch); - - inline void complement_inclusive_range(char32_t start, char32_t end); - - inline void complement_set(const CodePointSetData& data); - - inline const diplomat::capi::CodePointSetBuilder* AsFFI() const; - inline diplomat::capi::CodePointSetBuilder* AsFFI(); - inline static const CodePointSetBuilder* FromFFI(const diplomat::capi::CodePointSetBuilder* ptr); - inline static CodePointSetBuilder* FromFFI(diplomat::capi::CodePointSetBuilder* ptr); - inline static void operator delete(void* ptr); -private: - CodePointSetBuilder() = delete; - CodePointSetBuilder(const CodePointSetBuilder&) = delete; - CodePointSetBuilder(CodePointSetBuilder&&) noexcept = delete; - CodePointSetBuilder operator=(const CodePointSetBuilder&) = delete; - CodePointSetBuilder operator=(CodePointSetBuilder&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CodePointSetBuilder_D_HPP diff --git a/ffi/capi/bindings/cpp/CodePointSetBuilder.hpp b/ffi/capi/bindings/cpp/CodePointSetBuilder.hpp deleted file mode 100644 index c443b8bc19d..00000000000 --- a/ffi/capi/bindings/cpp/CodePointSetBuilder.hpp +++ /dev/null @@ -1,163 +0,0 @@ -#ifndef CodePointSetBuilder_HPP -#define CodePointSetBuilder_HPP - -#include "CodePointSetBuilder.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointSetData.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::CodePointSetBuilder* icu4x_CodePointSetBuilder_create_mv1(void); - - diplomat::capi::CodePointSetData* icu4x_CodePointSetBuilder_build_mv1(diplomat::capi::CodePointSetBuilder* self); - - void icu4x_CodePointSetBuilder_complement_mv1(diplomat::capi::CodePointSetBuilder* self); - - bool icu4x_CodePointSetBuilder_is_empty_mv1(const diplomat::capi::CodePointSetBuilder* self); - - void icu4x_CodePointSetBuilder_add_char_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t ch); - - void icu4x_CodePointSetBuilder_add_inclusive_range_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t start, char32_t end); - - void icu4x_CodePointSetBuilder_add_set_mv1(diplomat::capi::CodePointSetBuilder* self, const diplomat::capi::CodePointSetData* data); - - void icu4x_CodePointSetBuilder_remove_char_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t ch); - - void icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t start, char32_t end); - - void icu4x_CodePointSetBuilder_remove_set_mv1(diplomat::capi::CodePointSetBuilder* self, const diplomat::capi::CodePointSetData* data); - - void icu4x_CodePointSetBuilder_retain_char_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t ch); - - void icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t start, char32_t end); - - void icu4x_CodePointSetBuilder_retain_set_mv1(diplomat::capi::CodePointSetBuilder* self, const diplomat::capi::CodePointSetData* data); - - void icu4x_CodePointSetBuilder_complement_char_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t ch); - - void icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(diplomat::capi::CodePointSetBuilder* self, char32_t start, char32_t end); - - void icu4x_CodePointSetBuilder_complement_set_mv1(diplomat::capi::CodePointSetBuilder* self, const diplomat::capi::CodePointSetData* data); - - - void icu4x_CodePointSetBuilder_destroy_mv1(CodePointSetBuilder* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline std::unique_ptr<CodePointSetBuilder> CodePointSetBuilder::create() { - auto result = diplomat::capi::icu4x_CodePointSetBuilder_create_mv1(); - return std::unique_ptr<CodePointSetBuilder>(CodePointSetBuilder::FromFFI(result)); -} - -inline std::unique_ptr<CodePointSetData> CodePointSetBuilder::build() { - auto result = diplomat::capi::icu4x_CodePointSetBuilder_build_mv1(this->AsFFI()); - return std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result)); -} - -inline void CodePointSetBuilder::complement() { - diplomat::capi::icu4x_CodePointSetBuilder_complement_mv1(this->AsFFI()); -} - -inline bool CodePointSetBuilder::is_empty() const { - auto result = diplomat::capi::icu4x_CodePointSetBuilder_is_empty_mv1(this->AsFFI()); - return result; -} - -inline void CodePointSetBuilder::add_char(char32_t ch) { - diplomat::capi::icu4x_CodePointSetBuilder_add_char_mv1(this->AsFFI(), - ch); -} - -inline void CodePointSetBuilder::add_inclusive_range(char32_t start, char32_t end) { - diplomat::capi::icu4x_CodePointSetBuilder_add_inclusive_range_mv1(this->AsFFI(), - start, - end); -} - -inline void CodePointSetBuilder::add_set(const CodePointSetData& data) { - diplomat::capi::icu4x_CodePointSetBuilder_add_set_mv1(this->AsFFI(), - data.AsFFI()); -} - -inline void CodePointSetBuilder::remove_char(char32_t ch) { - diplomat::capi::icu4x_CodePointSetBuilder_remove_char_mv1(this->AsFFI(), - ch); -} - -inline void CodePointSetBuilder::remove_inclusive_range(char32_t start, char32_t end) { - diplomat::capi::icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(this->AsFFI(), - start, - end); -} - -inline void CodePointSetBuilder::remove_set(const CodePointSetData& data) { - diplomat::capi::icu4x_CodePointSetBuilder_remove_set_mv1(this->AsFFI(), - data.AsFFI()); -} - -inline void CodePointSetBuilder::retain_char(char32_t ch) { - diplomat::capi::icu4x_CodePointSetBuilder_retain_char_mv1(this->AsFFI(), - ch); -} - -inline void CodePointSetBuilder::retain_inclusive_range(char32_t start, char32_t end) { - diplomat::capi::icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(this->AsFFI(), - start, - end); -} - -inline void CodePointSetBuilder::retain_set(const CodePointSetData& data) { - diplomat::capi::icu4x_CodePointSetBuilder_retain_set_mv1(this->AsFFI(), - data.AsFFI()); -} - -inline void CodePointSetBuilder::complement_char(char32_t ch) { - diplomat::capi::icu4x_CodePointSetBuilder_complement_char_mv1(this->AsFFI(), - ch); -} - -inline void CodePointSetBuilder::complement_inclusive_range(char32_t start, char32_t end) { - diplomat::capi::icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(this->AsFFI(), - start, - end); -} - -inline void CodePointSetBuilder::complement_set(const CodePointSetData& data) { - diplomat::capi::icu4x_CodePointSetBuilder_complement_set_mv1(this->AsFFI(), - data.AsFFI()); -} - -inline const diplomat::capi::CodePointSetBuilder* CodePointSetBuilder::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CodePointSetBuilder*>(this); -} - -inline diplomat::capi::CodePointSetBuilder* CodePointSetBuilder::AsFFI() { - return reinterpret_cast<diplomat::capi::CodePointSetBuilder*>(this); -} - -inline const CodePointSetBuilder* CodePointSetBuilder::FromFFI(const diplomat::capi::CodePointSetBuilder* ptr) { - return reinterpret_cast<const CodePointSetBuilder*>(ptr); -} - -inline CodePointSetBuilder* CodePointSetBuilder::FromFFI(diplomat::capi::CodePointSetBuilder* ptr) { - return reinterpret_cast<CodePointSetBuilder*>(ptr); -} - -inline void CodePointSetBuilder::operator delete(void* ptr) { - diplomat::capi::icu4x_CodePointSetBuilder_destroy_mv1(reinterpret_cast<diplomat::capi::CodePointSetBuilder*>(ptr)); -} - - -#endif // CodePointSetBuilder_HPP diff --git a/ffi/capi/bindings/cpp/CodePointSetData.d.hpp b/ffi/capi/bindings/cpp/CodePointSetData.d.hpp deleted file mode 100644 index 4208d2d7869..00000000000 --- a/ffi/capi/bindings/cpp/CodePointSetData.d.hpp +++ /dev/null @@ -1,184 +0,0 @@ -#ifndef CodePointSetData_D_HPP -#define CodePointSetData_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointRangeIterator; } -class CodePointRangeIterator; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; -class Error; - - -namespace diplomat { -namespace capi { - struct CodePointSetData; -} // namespace capi -} // namespace - -class CodePointSetData { -public: - - inline bool contains(char32_t cp) const; - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges() const; - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges_complemented() const; - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_for_general_category_group(const DataProvider& provider, uint32_t group); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_ascii_hex_digit(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_alnum(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_alphabetic(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_bidi_control(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_bidi_mirrored(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_blank(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_cased(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_case_ignorable(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_full_composition_exclusion(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_changes_when_casefolded(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_changes_when_casemapped(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_changes_when_nfkc_casefolded(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_changes_when_lowercased(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_changes_when_titlecased(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_changes_when_uppercased(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_dash(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_deprecated(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_default_ignorable_code_point(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_diacritic(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_emoji_modifier_base(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_emoji_component(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_emoji_modifier(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_emoji(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_emoji_presentation(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_extender(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_extended_pictographic(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_graph(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_grapheme_base(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_grapheme_extend(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_grapheme_link(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_hex_digit(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_hyphen(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_id_continue(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_ideographic(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_id_start(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_ids_binary_operator(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_ids_trinary_operator(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_join_control(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_logical_order_exception(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_lowercase(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_math(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_noncharacter_code_point(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_nfc_inert(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_nfd_inert(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_nfkc_inert(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_nfkd_inert(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_pattern_syntax(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_pattern_white_space(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_prepended_concatenation_mark(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_print(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_quotation_mark(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_radical(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_regional_indicator(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_soft_dotted(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_segment_starter(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_case_sensitive(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_sentence_terminal(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_terminal_punctuation(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_unified_ideograph(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_uppercase(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_variation_selector(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_white_space(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_xdigit(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_xid_continue(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<CodePointSetData>, DataError> load_xid_start(const DataProvider& provider); - - inline static diplomat::result<diplomat::result<std::unique_ptr<CodePointSetData>, Error>, diplomat::Utf8Error> load_for_ecma262(const DataProvider& provider, std::string_view property_name); - - inline const diplomat::capi::CodePointSetData* AsFFI() const; - inline diplomat::capi::CodePointSetData* AsFFI(); - inline static const CodePointSetData* FromFFI(const diplomat::capi::CodePointSetData* ptr); - inline static CodePointSetData* FromFFI(diplomat::capi::CodePointSetData* ptr); - inline static void operator delete(void* ptr); -private: - CodePointSetData() = delete; - CodePointSetData(const CodePointSetData&) = delete; - CodePointSetData(CodePointSetData&&) noexcept = delete; - CodePointSetData operator=(const CodePointSetData&) = delete; - CodePointSetData operator=(CodePointSetData&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CodePointSetData_D_HPP diff --git a/ffi/capi/bindings/cpp/CodePointSetData.hpp b/ffi/capi/bindings/cpp/CodePointSetData.hpp deleted file mode 100644 index 4627a606fa4..00000000000 --- a/ffi/capi/bindings/cpp/CodePointSetData.hpp +++ /dev/null @@ -1,615 +0,0 @@ -#ifndef CodePointSetData_HPP -#define CodePointSetData_HPP - -#include "CodePointSetData.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointRangeIterator.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Error.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - bool icu4x_CodePointSetData_contains_mv1(const diplomat::capi::CodePointSetData* self, char32_t cp); - - diplomat::capi::CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_mv1(const diplomat::capi::CodePointSetData* self); - - diplomat::capi::CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_complemented_mv1(const diplomat::capi::CodePointSetData* self); - - typedef struct icu4x_CodePointSetData_load_for_general_category_group_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_for_general_category_group_mv1_result; - icu4x_CodePointSetData_load_for_general_category_group_mv1_result icu4x_CodePointSetData_load_for_general_category_group_mv1(const diplomat::capi::DataProvider* provider, uint32_t group); - - typedef struct icu4x_CodePointSetData_load_ascii_hex_digit_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ascii_hex_digit_mv1_result; - icu4x_CodePointSetData_load_ascii_hex_digit_mv1_result icu4x_CodePointSetData_load_ascii_hex_digit_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_alnum_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_alnum_mv1_result; - icu4x_CodePointSetData_load_alnum_mv1_result icu4x_CodePointSetData_load_alnum_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_alphabetic_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_alphabetic_mv1_result; - icu4x_CodePointSetData_load_alphabetic_mv1_result icu4x_CodePointSetData_load_alphabetic_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_bidi_control_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_bidi_control_mv1_result; - icu4x_CodePointSetData_load_bidi_control_mv1_result icu4x_CodePointSetData_load_bidi_control_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_bidi_mirrored_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_bidi_mirrored_mv1_result; - icu4x_CodePointSetData_load_bidi_mirrored_mv1_result icu4x_CodePointSetData_load_bidi_mirrored_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_blank_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_blank_mv1_result; - icu4x_CodePointSetData_load_blank_mv1_result icu4x_CodePointSetData_load_blank_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_cased_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_cased_mv1_result; - icu4x_CodePointSetData_load_cased_mv1_result icu4x_CodePointSetData_load_cased_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_case_ignorable_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_case_ignorable_mv1_result; - icu4x_CodePointSetData_load_case_ignorable_mv1_result icu4x_CodePointSetData_load_case_ignorable_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_full_composition_exclusion_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_full_composition_exclusion_mv1_result; - icu4x_CodePointSetData_load_full_composition_exclusion_mv1_result icu4x_CodePointSetData_load_full_composition_exclusion_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_changes_when_casefolded_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_casefolded_mv1_result; - icu4x_CodePointSetData_load_changes_when_casefolded_mv1_result icu4x_CodePointSetData_load_changes_when_casefolded_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_changes_when_casemapped_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_casemapped_mv1_result; - icu4x_CodePointSetData_load_changes_when_casemapped_mv1_result icu4x_CodePointSetData_load_changes_when_casemapped_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1_result; - icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1_result icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_changes_when_lowercased_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_lowercased_mv1_result; - icu4x_CodePointSetData_load_changes_when_lowercased_mv1_result icu4x_CodePointSetData_load_changes_when_lowercased_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_changes_when_titlecased_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_titlecased_mv1_result; - icu4x_CodePointSetData_load_changes_when_titlecased_mv1_result icu4x_CodePointSetData_load_changes_when_titlecased_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_changes_when_uppercased_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_uppercased_mv1_result; - icu4x_CodePointSetData_load_changes_when_uppercased_mv1_result icu4x_CodePointSetData_load_changes_when_uppercased_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_dash_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_dash_mv1_result; - icu4x_CodePointSetData_load_dash_mv1_result icu4x_CodePointSetData_load_dash_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_deprecated_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_deprecated_mv1_result; - icu4x_CodePointSetData_load_deprecated_mv1_result icu4x_CodePointSetData_load_deprecated_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_default_ignorable_code_point_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_default_ignorable_code_point_mv1_result; - icu4x_CodePointSetData_load_default_ignorable_code_point_mv1_result icu4x_CodePointSetData_load_default_ignorable_code_point_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_diacritic_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_diacritic_mv1_result; - icu4x_CodePointSetData_load_diacritic_mv1_result icu4x_CodePointSetData_load_diacritic_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_emoji_modifier_base_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_modifier_base_mv1_result; - icu4x_CodePointSetData_load_emoji_modifier_base_mv1_result icu4x_CodePointSetData_load_emoji_modifier_base_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_emoji_component_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_component_mv1_result; - icu4x_CodePointSetData_load_emoji_component_mv1_result icu4x_CodePointSetData_load_emoji_component_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_emoji_modifier_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_modifier_mv1_result; - icu4x_CodePointSetData_load_emoji_modifier_mv1_result icu4x_CodePointSetData_load_emoji_modifier_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_emoji_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_mv1_result; - icu4x_CodePointSetData_load_emoji_mv1_result icu4x_CodePointSetData_load_emoji_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_emoji_presentation_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_presentation_mv1_result; - icu4x_CodePointSetData_load_emoji_presentation_mv1_result icu4x_CodePointSetData_load_emoji_presentation_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_extender_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_extender_mv1_result; - icu4x_CodePointSetData_load_extender_mv1_result icu4x_CodePointSetData_load_extender_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_extended_pictographic_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_extended_pictographic_mv1_result; - icu4x_CodePointSetData_load_extended_pictographic_mv1_result icu4x_CodePointSetData_load_extended_pictographic_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_graph_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_graph_mv1_result; - icu4x_CodePointSetData_load_graph_mv1_result icu4x_CodePointSetData_load_graph_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_grapheme_base_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_grapheme_base_mv1_result; - icu4x_CodePointSetData_load_grapheme_base_mv1_result icu4x_CodePointSetData_load_grapheme_base_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_grapheme_extend_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_grapheme_extend_mv1_result; - icu4x_CodePointSetData_load_grapheme_extend_mv1_result icu4x_CodePointSetData_load_grapheme_extend_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_grapheme_link_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_grapheme_link_mv1_result; - icu4x_CodePointSetData_load_grapheme_link_mv1_result icu4x_CodePointSetData_load_grapheme_link_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_hex_digit_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_hex_digit_mv1_result; - icu4x_CodePointSetData_load_hex_digit_mv1_result icu4x_CodePointSetData_load_hex_digit_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_hyphen_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_hyphen_mv1_result; - icu4x_CodePointSetData_load_hyphen_mv1_result icu4x_CodePointSetData_load_hyphen_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_id_continue_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_id_continue_mv1_result; - icu4x_CodePointSetData_load_id_continue_mv1_result icu4x_CodePointSetData_load_id_continue_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_ideographic_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ideographic_mv1_result; - icu4x_CodePointSetData_load_ideographic_mv1_result icu4x_CodePointSetData_load_ideographic_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_id_start_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_id_start_mv1_result; - icu4x_CodePointSetData_load_id_start_mv1_result icu4x_CodePointSetData_load_id_start_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_ids_binary_operator_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ids_binary_operator_mv1_result; - icu4x_CodePointSetData_load_ids_binary_operator_mv1_result icu4x_CodePointSetData_load_ids_binary_operator_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_ids_trinary_operator_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ids_trinary_operator_mv1_result; - icu4x_CodePointSetData_load_ids_trinary_operator_mv1_result icu4x_CodePointSetData_load_ids_trinary_operator_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_join_control_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_join_control_mv1_result; - icu4x_CodePointSetData_load_join_control_mv1_result icu4x_CodePointSetData_load_join_control_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_logical_order_exception_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_logical_order_exception_mv1_result; - icu4x_CodePointSetData_load_logical_order_exception_mv1_result icu4x_CodePointSetData_load_logical_order_exception_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_lowercase_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_lowercase_mv1_result; - icu4x_CodePointSetData_load_lowercase_mv1_result icu4x_CodePointSetData_load_lowercase_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_math_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_math_mv1_result; - icu4x_CodePointSetData_load_math_mv1_result icu4x_CodePointSetData_load_math_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_noncharacter_code_point_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_noncharacter_code_point_mv1_result; - icu4x_CodePointSetData_load_noncharacter_code_point_mv1_result icu4x_CodePointSetData_load_noncharacter_code_point_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_nfc_inert_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfc_inert_mv1_result; - icu4x_CodePointSetData_load_nfc_inert_mv1_result icu4x_CodePointSetData_load_nfc_inert_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_nfd_inert_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfd_inert_mv1_result; - icu4x_CodePointSetData_load_nfd_inert_mv1_result icu4x_CodePointSetData_load_nfd_inert_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_nfkc_inert_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfkc_inert_mv1_result; - icu4x_CodePointSetData_load_nfkc_inert_mv1_result icu4x_CodePointSetData_load_nfkc_inert_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_nfkd_inert_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfkd_inert_mv1_result; - icu4x_CodePointSetData_load_nfkd_inert_mv1_result icu4x_CodePointSetData_load_nfkd_inert_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_pattern_syntax_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_pattern_syntax_mv1_result; - icu4x_CodePointSetData_load_pattern_syntax_mv1_result icu4x_CodePointSetData_load_pattern_syntax_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_pattern_white_space_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_pattern_white_space_mv1_result; - icu4x_CodePointSetData_load_pattern_white_space_mv1_result icu4x_CodePointSetData_load_pattern_white_space_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1_result; - icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1_result icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_print_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_print_mv1_result; - icu4x_CodePointSetData_load_print_mv1_result icu4x_CodePointSetData_load_print_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_quotation_mark_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_quotation_mark_mv1_result; - icu4x_CodePointSetData_load_quotation_mark_mv1_result icu4x_CodePointSetData_load_quotation_mark_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_radical_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_radical_mv1_result; - icu4x_CodePointSetData_load_radical_mv1_result icu4x_CodePointSetData_load_radical_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_regional_indicator_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_regional_indicator_mv1_result; - icu4x_CodePointSetData_load_regional_indicator_mv1_result icu4x_CodePointSetData_load_regional_indicator_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_soft_dotted_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_soft_dotted_mv1_result; - icu4x_CodePointSetData_load_soft_dotted_mv1_result icu4x_CodePointSetData_load_soft_dotted_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_segment_starter_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_segment_starter_mv1_result; - icu4x_CodePointSetData_load_segment_starter_mv1_result icu4x_CodePointSetData_load_segment_starter_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_case_sensitive_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_case_sensitive_mv1_result; - icu4x_CodePointSetData_load_case_sensitive_mv1_result icu4x_CodePointSetData_load_case_sensitive_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_sentence_terminal_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_sentence_terminal_mv1_result; - icu4x_CodePointSetData_load_sentence_terminal_mv1_result icu4x_CodePointSetData_load_sentence_terminal_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_terminal_punctuation_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_terminal_punctuation_mv1_result; - icu4x_CodePointSetData_load_terminal_punctuation_mv1_result icu4x_CodePointSetData_load_terminal_punctuation_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_unified_ideograph_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_unified_ideograph_mv1_result; - icu4x_CodePointSetData_load_unified_ideograph_mv1_result icu4x_CodePointSetData_load_unified_ideograph_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_uppercase_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_uppercase_mv1_result; - icu4x_CodePointSetData_load_uppercase_mv1_result icu4x_CodePointSetData_load_uppercase_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_variation_selector_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_variation_selector_mv1_result; - icu4x_CodePointSetData_load_variation_selector_mv1_result icu4x_CodePointSetData_load_variation_selector_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_white_space_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_white_space_mv1_result; - icu4x_CodePointSetData_load_white_space_mv1_result icu4x_CodePointSetData_load_white_space_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_xdigit_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_xdigit_mv1_result; - icu4x_CodePointSetData_load_xdigit_mv1_result icu4x_CodePointSetData_load_xdigit_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_xid_continue_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_xid_continue_mv1_result; - icu4x_CodePointSetData_load_xid_continue_mv1_result icu4x_CodePointSetData_load_xid_continue_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_xid_start_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_xid_start_mv1_result; - icu4x_CodePointSetData_load_xid_start_mv1_result icu4x_CodePointSetData_load_xid_start_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_CodePointSetData_load_for_ecma262_mv1_result {union {diplomat::capi::CodePointSetData* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_CodePointSetData_load_for_ecma262_mv1_result; - icu4x_CodePointSetData_load_for_ecma262_mv1_result icu4x_CodePointSetData_load_for_ecma262_mv1(const diplomat::capi::DataProvider* provider, const char* property_name_data, size_t property_name_len); - - - void icu4x_CodePointSetData_destroy_mv1(CodePointSetData* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline bool CodePointSetData::contains(char32_t cp) const { - auto result = diplomat::capi::icu4x_CodePointSetData_contains_mv1(this->AsFFI(), - cp); - return result; -} - -inline std::unique_ptr<CodePointRangeIterator> CodePointSetData::iter_ranges() const { - auto result = diplomat::capi::icu4x_CodePointSetData_iter_ranges_mv1(this->AsFFI()); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline std::unique_ptr<CodePointRangeIterator> CodePointSetData::iter_ranges_complemented() const { - auto result = diplomat::capi::icu4x_CodePointSetData_iter_ranges_complemented_mv1(this->AsFFI()); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_for_general_category_group(const DataProvider& provider, uint32_t group) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_for_general_category_group_mv1(provider.AsFFI(), - group); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_ascii_hex_digit(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_ascii_hex_digit_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_alnum(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_alnum_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_alphabetic(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_alphabetic_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_bidi_control(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_bidi_control_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_bidi_mirrored(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_bidi_mirrored_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_blank(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_blank_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_cased(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_cased_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_case_ignorable(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_case_ignorable_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_full_composition_exclusion(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_full_composition_exclusion_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_changes_when_casefolded(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_changes_when_casefolded_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_changes_when_casemapped(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_changes_when_casemapped_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_changes_when_nfkc_casefolded(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_changes_when_lowercased(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_changes_when_lowercased_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_changes_when_titlecased(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_changes_when_titlecased_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_changes_when_uppercased(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_changes_when_uppercased_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_dash(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_dash_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_deprecated(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_deprecated_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_default_ignorable_code_point(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_default_ignorable_code_point_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_diacritic(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_diacritic_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_emoji_modifier_base(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_emoji_modifier_base_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_emoji_component(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_emoji_component_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_emoji_modifier(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_emoji_modifier_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_emoji(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_emoji_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_emoji_presentation(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_emoji_presentation_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_extender(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_extender_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_extended_pictographic(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_extended_pictographic_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_graph(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_graph_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_grapheme_base(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_grapheme_base_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_grapheme_extend(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_grapheme_extend_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_grapheme_link(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_grapheme_link_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_hex_digit(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_hex_digit_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_hyphen(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_hyphen_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_id_continue(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_id_continue_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_ideographic(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_ideographic_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_id_start(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_id_start_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_ids_binary_operator(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_ids_binary_operator_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_ids_trinary_operator(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_ids_trinary_operator_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_join_control(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_join_control_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_logical_order_exception(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_logical_order_exception_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_lowercase(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_lowercase_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_math(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_math_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_noncharacter_code_point(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_noncharacter_code_point_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_nfc_inert(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_nfc_inert_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_nfd_inert(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_nfd_inert_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_nfkc_inert(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_nfkc_inert_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_nfkd_inert(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_nfkd_inert_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_pattern_syntax(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_pattern_syntax_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_pattern_white_space(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_pattern_white_space_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_prepended_concatenation_mark(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_print(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_print_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_quotation_mark(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_quotation_mark_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_radical(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_radical_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_regional_indicator(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_regional_indicator_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_soft_dotted(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_soft_dotted_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_segment_starter(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_segment_starter_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_case_sensitive(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_case_sensitive_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_sentence_terminal(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_sentence_terminal_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_terminal_punctuation(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_terminal_punctuation_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_unified_ideograph(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_unified_ideograph_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_uppercase(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_uppercase_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_variation_selector(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_variation_selector_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_white_space(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_white_space_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_xdigit(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_xdigit_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_xid_continue(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_xid_continue_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<CodePointSetData>, DataError> CodePointSetData::load_xid_start(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_CodePointSetData_load_xid_start_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<diplomat::result<std::unique_ptr<CodePointSetData>, Error>, diplomat::Utf8Error> CodePointSetData::load_for_ecma262(const DataProvider& provider, std::string_view property_name) { - if (!diplomat::capi::diplomat_is_str(property_name.data(), property_name.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - auto result = diplomat::capi::icu4x_CodePointSetData_load_for_ecma262_mv1(provider.AsFFI(), - property_name.data(), - property_name.size()); - return diplomat::Ok<diplomat::result<std::unique_ptr<CodePointSetData>, Error>>(result.is_ok ? diplomat::result<std::unique_ptr<CodePointSetData>, Error>(diplomat::Ok<std::unique_ptr<CodePointSetData>>(std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CodePointSetData>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err)))); -} - -inline const diplomat::capi::CodePointSetData* CodePointSetData::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CodePointSetData*>(this); -} - -inline diplomat::capi::CodePointSetData* CodePointSetData::AsFFI() { - return reinterpret_cast<diplomat::capi::CodePointSetData*>(this); -} - -inline const CodePointSetData* CodePointSetData::FromFFI(const diplomat::capi::CodePointSetData* ptr) { - return reinterpret_cast<const CodePointSetData*>(ptr); -} - -inline CodePointSetData* CodePointSetData::FromFFI(diplomat::capi::CodePointSetData* ptr) { - return reinterpret_cast<CodePointSetData*>(ptr); -} - -inline void CodePointSetData::operator delete(void* ptr) { - diplomat::capi::icu4x_CodePointSetData_destroy_mv1(reinterpret_cast<diplomat::capi::CodePointSetData*>(ptr)); -} - - -#endif // CodePointSetData_HPP diff --git a/ffi/capi/bindings/cpp/Collator.d.hpp b/ffi/capi/bindings/cpp/Collator.d.hpp deleted file mode 100644 index 486d7ef874d..00000000000 --- a/ffi/capi/bindings/cpp/Collator.d.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef Collator_D_HPP -#define Collator_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -struct CollatorOptionsV1; -struct CollatorResolvedOptionsV1; -class DataError; - - -namespace diplomat { -namespace capi { - struct Collator; -} // namespace capi -} // namespace - -class Collator { -public: - - inline static diplomat::result<std::unique_ptr<Collator>, DataError> create_v1(const DataProvider& provider, const Locale& locale, CollatorOptionsV1 options); - - inline int8_t compare(std::string_view left, std::string_view right) const; - - inline int8_t compare16(std::u16string_view left, std::u16string_view right) const; - - inline CollatorResolvedOptionsV1 resolved_options_v1() const; - - inline const diplomat::capi::Collator* AsFFI() const; - inline diplomat::capi::Collator* AsFFI(); - inline static const Collator* FromFFI(const diplomat::capi::Collator* ptr); - inline static Collator* FromFFI(diplomat::capi::Collator* ptr); - inline static void operator delete(void* ptr); -private: - Collator() = delete; - Collator(const Collator&) = delete; - Collator(Collator&&) noexcept = delete; - Collator operator=(const Collator&) = delete; - Collator operator=(Collator&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // Collator_D_HPP diff --git a/ffi/capi/bindings/cpp/Collator.hpp b/ffi/capi/bindings/cpp/Collator.hpp deleted file mode 100644 index ac1850ca59c..00000000000 --- a/ffi/capi/bindings/cpp/Collator.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef Collator_HPP -#define Collator_HPP - -#include "Collator.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CollatorOptionsV1.hpp" -#include "CollatorResolvedOptionsV1.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_Collator_create_v1_mv1_result {union {diplomat::capi::Collator* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_Collator_create_v1_mv1_result; - icu4x_Collator_create_v1_mv1_result icu4x_Collator_create_v1_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::CollatorOptionsV1 options); - - int8_t icu4x_Collator_compare_utf8_mv1(const diplomat::capi::Collator* self, const char* left_data, size_t left_len, const char* right_data, size_t right_len); - - int8_t icu4x_Collator_compare_utf16_mv1(const diplomat::capi::Collator* self, const char16_t* left_data, size_t left_len, const char16_t* right_data, size_t right_len); - - diplomat::capi::CollatorResolvedOptionsV1 icu4x_Collator_resolved_options_v1_mv1(const diplomat::capi::Collator* self); - - - void icu4x_Collator_destroy_mv1(Collator* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<Collator>, DataError> Collator::create_v1(const DataProvider& provider, const Locale& locale, CollatorOptionsV1 options) { - auto result = diplomat::capi::icu4x_Collator_create_v1_mv1(provider.AsFFI(), - locale.AsFFI(), - options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<Collator>, DataError>(diplomat::Ok<std::unique_ptr<Collator>>(std::unique_ptr<Collator>(Collator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Collator>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline int8_t Collator::compare(std::string_view left, std::string_view right) const { - auto result = diplomat::capi::icu4x_Collator_compare_utf8_mv1(this->AsFFI(), - left.data(), - left.size(), - right.data(), - right.size()); - return result; -} - -inline int8_t Collator::compare16(std::u16string_view left, std::u16string_view right) const { - auto result = diplomat::capi::icu4x_Collator_compare_utf16_mv1(this->AsFFI(), - left.data(), - left.size(), - right.data(), - right.size()); - return result; -} - -inline CollatorResolvedOptionsV1 Collator::resolved_options_v1() const { - auto result = diplomat::capi::icu4x_Collator_resolved_options_v1_mv1(this->AsFFI()); - return CollatorResolvedOptionsV1::FromFFI(result); -} - -inline const diplomat::capi::Collator* Collator::AsFFI() const { - return reinterpret_cast<const diplomat::capi::Collator*>(this); -} - -inline diplomat::capi::Collator* Collator::AsFFI() { - return reinterpret_cast<diplomat::capi::Collator*>(this); -} - -inline const Collator* Collator::FromFFI(const diplomat::capi::Collator* ptr) { - return reinterpret_cast<const Collator*>(ptr); -} - -inline Collator* Collator::FromFFI(diplomat::capi::Collator* ptr) { - return reinterpret_cast<Collator*>(ptr); -} - -inline void Collator::operator delete(void* ptr) { - diplomat::capi::icu4x_Collator_destroy_mv1(reinterpret_cast<diplomat::capi::Collator*>(ptr)); -} - - -#endif // Collator_HPP diff --git a/ffi/capi/bindings/cpp/CollatorAlternateHandling.hpp b/ffi/capi/bindings/cpp/CollatorAlternateHandling.hpp deleted file mode 100644 index 24d8cbbb9fc..00000000000 --- a/ffi/capi/bindings/cpp/CollatorAlternateHandling.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef CollatorAlternateHandling_HPP -#define CollatorAlternateHandling_HPP - -#include "CollatorAlternateHandling.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CollatorAlternateHandling CollatorAlternateHandling::AsFFI() const { - return static_cast<diplomat::capi::CollatorAlternateHandling>(value); -} - -inline CollatorAlternateHandling CollatorAlternateHandling::FromFFI(diplomat::capi::CollatorAlternateHandling c_enum) { - switch (c_enum) { - case diplomat::capi::CollatorAlternateHandling_Auto: - case diplomat::capi::CollatorAlternateHandling_NonIgnorable: - case diplomat::capi::CollatorAlternateHandling_Shifted: - return static_cast<CollatorAlternateHandling::Value>(c_enum); - default: - abort(); - } -} -#endif // CollatorAlternateHandling_HPP diff --git a/ffi/capi/bindings/cpp/CollatorBackwardSecondLevel.hpp b/ffi/capi/bindings/cpp/CollatorBackwardSecondLevel.hpp deleted file mode 100644 index 161bf3223d7..00000000000 --- a/ffi/capi/bindings/cpp/CollatorBackwardSecondLevel.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef CollatorBackwardSecondLevel_HPP -#define CollatorBackwardSecondLevel_HPP - -#include "CollatorBackwardSecondLevel.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CollatorBackwardSecondLevel CollatorBackwardSecondLevel::AsFFI() const { - return static_cast<diplomat::capi::CollatorBackwardSecondLevel>(value); -} - -inline CollatorBackwardSecondLevel CollatorBackwardSecondLevel::FromFFI(diplomat::capi::CollatorBackwardSecondLevel c_enum) { - switch (c_enum) { - case diplomat::capi::CollatorBackwardSecondLevel_Auto: - case diplomat::capi::CollatorBackwardSecondLevel_Off: - case diplomat::capi::CollatorBackwardSecondLevel_On: - return static_cast<CollatorBackwardSecondLevel::Value>(c_enum); - default: - abort(); - } -} -#endif // CollatorBackwardSecondLevel_HPP diff --git a/ffi/capi/bindings/cpp/CollatorCaseFirst.hpp b/ffi/capi/bindings/cpp/CollatorCaseFirst.hpp deleted file mode 100644 index a4346969cb7..00000000000 --- a/ffi/capi/bindings/cpp/CollatorCaseFirst.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CollatorCaseFirst_HPP -#define CollatorCaseFirst_HPP - -#include "CollatorCaseFirst.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CollatorCaseFirst CollatorCaseFirst::AsFFI() const { - return static_cast<diplomat::capi::CollatorCaseFirst>(value); -} - -inline CollatorCaseFirst CollatorCaseFirst::FromFFI(diplomat::capi::CollatorCaseFirst c_enum) { - switch (c_enum) { - case diplomat::capi::CollatorCaseFirst_Auto: - case diplomat::capi::CollatorCaseFirst_Off: - case diplomat::capi::CollatorCaseFirst_LowerFirst: - case diplomat::capi::CollatorCaseFirst_UpperFirst: - return static_cast<CollatorCaseFirst::Value>(c_enum); - default: - abort(); - } -} -#endif // CollatorCaseFirst_HPP diff --git a/ffi/capi/bindings/cpp/CollatorCaseLevel.hpp b/ffi/capi/bindings/cpp/CollatorCaseLevel.hpp deleted file mode 100644 index 9f668f3fb5f..00000000000 --- a/ffi/capi/bindings/cpp/CollatorCaseLevel.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef CollatorCaseLevel_HPP -#define CollatorCaseLevel_HPP - -#include "CollatorCaseLevel.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CollatorCaseLevel CollatorCaseLevel::AsFFI() const { - return static_cast<diplomat::capi::CollatorCaseLevel>(value); -} - -inline CollatorCaseLevel CollatorCaseLevel::FromFFI(diplomat::capi::CollatorCaseLevel c_enum) { - switch (c_enum) { - case diplomat::capi::CollatorCaseLevel_Auto: - case diplomat::capi::CollatorCaseLevel_Off: - case diplomat::capi::CollatorCaseLevel_On: - return static_cast<CollatorCaseLevel::Value>(c_enum); - default: - abort(); - } -} -#endif // CollatorCaseLevel_HPP diff --git a/ffi/capi/bindings/cpp/CollatorMaxVariable.hpp b/ffi/capi/bindings/cpp/CollatorMaxVariable.hpp deleted file mode 100644 index 1d7bb0ccca4..00000000000 --- a/ffi/capi/bindings/cpp/CollatorMaxVariable.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef CollatorMaxVariable_HPP -#define CollatorMaxVariable_HPP - -#include "CollatorMaxVariable.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CollatorMaxVariable CollatorMaxVariable::AsFFI() const { - return static_cast<diplomat::capi::CollatorMaxVariable>(value); -} - -inline CollatorMaxVariable CollatorMaxVariable::FromFFI(diplomat::capi::CollatorMaxVariable c_enum) { - switch (c_enum) { - case diplomat::capi::CollatorMaxVariable_Auto: - case diplomat::capi::CollatorMaxVariable_Space: - case diplomat::capi::CollatorMaxVariable_Punctuation: - case diplomat::capi::CollatorMaxVariable_Symbol: - case diplomat::capi::CollatorMaxVariable_Currency: - return static_cast<CollatorMaxVariable::Value>(c_enum); - default: - abort(); - } -} -#endif // CollatorMaxVariable_HPP diff --git a/ffi/capi/bindings/cpp/CollatorNumeric.hpp b/ffi/capi/bindings/cpp/CollatorNumeric.hpp deleted file mode 100644 index 29d17346921..00000000000 --- a/ffi/capi/bindings/cpp/CollatorNumeric.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef CollatorNumeric_HPP -#define CollatorNumeric_HPP - -#include "CollatorNumeric.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CollatorNumeric CollatorNumeric::AsFFI() const { - return static_cast<diplomat::capi::CollatorNumeric>(value); -} - -inline CollatorNumeric CollatorNumeric::FromFFI(diplomat::capi::CollatorNumeric c_enum) { - switch (c_enum) { - case diplomat::capi::CollatorNumeric_Auto: - case diplomat::capi::CollatorNumeric_Off: - case diplomat::capi::CollatorNumeric_On: - return static_cast<CollatorNumeric::Value>(c_enum); - default: - abort(); - } -} -#endif // CollatorNumeric_HPP diff --git a/ffi/capi/bindings/cpp/CollatorOptionsV1.d.hpp b/ffi/capi/bindings/cpp/CollatorOptionsV1.d.hpp deleted file mode 100644 index 4186b500783..00000000000 --- a/ffi/capi/bindings/cpp/CollatorOptionsV1.d.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef CollatorOptionsV1_D_HPP -#define CollatorOptionsV1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CollatorAlternateHandling.d.hpp" -#include "CollatorBackwardSecondLevel.d.hpp" -#include "CollatorCaseFirst.d.hpp" -#include "CollatorCaseLevel.d.hpp" -#include "CollatorMaxVariable.d.hpp" -#include "CollatorNumeric.d.hpp" -#include "CollatorStrength.d.hpp" -#include "diplomat_runtime.hpp" - -class CollatorAlternateHandling; -class CollatorBackwardSecondLevel; -class CollatorCaseFirst; -class CollatorCaseLevel; -class CollatorMaxVariable; -class CollatorNumeric; -class CollatorStrength; - - -namespace diplomat { -namespace capi { - struct CollatorOptionsV1 { - diplomat::capi::CollatorStrength strength; - diplomat::capi::CollatorAlternateHandling alternate_handling; - diplomat::capi::CollatorCaseFirst case_first; - diplomat::capi::CollatorMaxVariable max_variable; - diplomat::capi::CollatorCaseLevel case_level; - diplomat::capi::CollatorNumeric numeric; - diplomat::capi::CollatorBackwardSecondLevel backward_second_level; - }; -} // namespace capi -} // namespace - - -struct CollatorOptionsV1 { - CollatorStrength strength; - CollatorAlternateHandling alternate_handling; - CollatorCaseFirst case_first; - CollatorMaxVariable max_variable; - CollatorCaseLevel case_level; - CollatorNumeric numeric; - CollatorBackwardSecondLevel backward_second_level; - - inline diplomat::capi::CollatorOptionsV1 AsFFI() const; - inline static CollatorOptionsV1 FromFFI(diplomat::capi::CollatorOptionsV1 c_struct); -}; - - -#endif // CollatorOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/CollatorOptionsV1.hpp b/ffi/capi/bindings/cpp/CollatorOptionsV1.hpp deleted file mode 100644 index ab015d30e27..00000000000 --- a/ffi/capi/bindings/cpp/CollatorOptionsV1.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef CollatorOptionsV1_HPP -#define CollatorOptionsV1_HPP - -#include "CollatorOptionsV1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CollatorAlternateHandling.hpp" -#include "CollatorBackwardSecondLevel.hpp" -#include "CollatorCaseFirst.hpp" -#include "CollatorCaseLevel.hpp" -#include "CollatorMaxVariable.hpp" -#include "CollatorNumeric.hpp" -#include "CollatorStrength.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::CollatorOptionsV1 CollatorOptionsV1::AsFFI() const { - return diplomat::capi::CollatorOptionsV1 { - /* .strength = */ strength.AsFFI(), - /* .alternate_handling = */ alternate_handling.AsFFI(), - /* .case_first = */ case_first.AsFFI(), - /* .max_variable = */ max_variable.AsFFI(), - /* .case_level = */ case_level.AsFFI(), - /* .numeric = */ numeric.AsFFI(), - /* .backward_second_level = */ backward_second_level.AsFFI(), - }; -} - -inline CollatorOptionsV1 CollatorOptionsV1::FromFFI(diplomat::capi::CollatorOptionsV1 c_struct) { - return CollatorOptionsV1 { - /* .strength = */ CollatorStrength::FromFFI(c_struct.strength), - /* .alternate_handling = */ CollatorAlternateHandling::FromFFI(c_struct.alternate_handling), - /* .case_first = */ CollatorCaseFirst::FromFFI(c_struct.case_first), - /* .max_variable = */ CollatorMaxVariable::FromFFI(c_struct.max_variable), - /* .case_level = */ CollatorCaseLevel::FromFFI(c_struct.case_level), - /* .numeric = */ CollatorNumeric::FromFFI(c_struct.numeric), - /* .backward_second_level = */ CollatorBackwardSecondLevel::FromFFI(c_struct.backward_second_level), - }; -} - - -#endif // CollatorOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.d.hpp b/ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.d.hpp deleted file mode 100644 index d6aafa29eff..00000000000 --- a/ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.d.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef CollatorResolvedOptionsV1_D_HPP -#define CollatorResolvedOptionsV1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CollatorAlternateHandling.d.hpp" -#include "CollatorBackwardSecondLevel.d.hpp" -#include "CollatorCaseFirst.d.hpp" -#include "CollatorCaseLevel.d.hpp" -#include "CollatorMaxVariable.d.hpp" -#include "CollatorNumeric.d.hpp" -#include "CollatorStrength.d.hpp" -#include "diplomat_runtime.hpp" - -class CollatorAlternateHandling; -class CollatorBackwardSecondLevel; -class CollatorCaseFirst; -class CollatorCaseLevel; -class CollatorMaxVariable; -class CollatorNumeric; -class CollatorStrength; - - -namespace diplomat { -namespace capi { - struct CollatorResolvedOptionsV1 { - diplomat::capi::CollatorStrength strength; - diplomat::capi::CollatorAlternateHandling alternate_handling; - diplomat::capi::CollatorCaseFirst case_first; - diplomat::capi::CollatorMaxVariable max_variable; - diplomat::capi::CollatorCaseLevel case_level; - diplomat::capi::CollatorNumeric numeric; - diplomat::capi::CollatorBackwardSecondLevel backward_second_level; - }; -} // namespace capi -} // namespace - - -struct CollatorResolvedOptionsV1 { - CollatorStrength strength; - CollatorAlternateHandling alternate_handling; - CollatorCaseFirst case_first; - CollatorMaxVariable max_variable; - CollatorCaseLevel case_level; - CollatorNumeric numeric; - CollatorBackwardSecondLevel backward_second_level; - - inline diplomat::capi::CollatorResolvedOptionsV1 AsFFI() const; - inline static CollatorResolvedOptionsV1 FromFFI(diplomat::capi::CollatorResolvedOptionsV1 c_struct); -}; - - -#endif // CollatorResolvedOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.hpp b/ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.hpp deleted file mode 100644 index 4013519a895..00000000000 --- a/ffi/capi/bindings/cpp/CollatorResolvedOptionsV1.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef CollatorResolvedOptionsV1_HPP -#define CollatorResolvedOptionsV1_HPP - -#include "CollatorResolvedOptionsV1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CollatorAlternateHandling.hpp" -#include "CollatorBackwardSecondLevel.hpp" -#include "CollatorCaseFirst.hpp" -#include "CollatorCaseLevel.hpp" -#include "CollatorMaxVariable.hpp" -#include "CollatorNumeric.hpp" -#include "CollatorStrength.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::CollatorResolvedOptionsV1 CollatorResolvedOptionsV1::AsFFI() const { - return diplomat::capi::CollatorResolvedOptionsV1 { - /* .strength = */ strength.AsFFI(), - /* .alternate_handling = */ alternate_handling.AsFFI(), - /* .case_first = */ case_first.AsFFI(), - /* .max_variable = */ max_variable.AsFFI(), - /* .case_level = */ case_level.AsFFI(), - /* .numeric = */ numeric.AsFFI(), - /* .backward_second_level = */ backward_second_level.AsFFI(), - }; -} - -inline CollatorResolvedOptionsV1 CollatorResolvedOptionsV1::FromFFI(diplomat::capi::CollatorResolvedOptionsV1 c_struct) { - return CollatorResolvedOptionsV1 { - /* .strength = */ CollatorStrength::FromFFI(c_struct.strength), - /* .alternate_handling = */ CollatorAlternateHandling::FromFFI(c_struct.alternate_handling), - /* .case_first = */ CollatorCaseFirst::FromFFI(c_struct.case_first), - /* .max_variable = */ CollatorMaxVariable::FromFFI(c_struct.max_variable), - /* .case_level = */ CollatorCaseLevel::FromFFI(c_struct.case_level), - /* .numeric = */ CollatorNumeric::FromFFI(c_struct.numeric), - /* .backward_second_level = */ CollatorBackwardSecondLevel::FromFFI(c_struct.backward_second_level), - }; -} - - -#endif // CollatorResolvedOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/CollatorStrength.hpp b/ffi/capi/bindings/cpp/CollatorStrength.hpp deleted file mode 100644 index 0ccd38b8728..00000000000 --- a/ffi/capi/bindings/cpp/CollatorStrength.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef CollatorStrength_HPP -#define CollatorStrength_HPP - -#include "CollatorStrength.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::CollatorStrength CollatorStrength::AsFFI() const { - return static_cast<diplomat::capi::CollatorStrength>(value); -} - -inline CollatorStrength CollatorStrength::FromFFI(diplomat::capi::CollatorStrength c_enum) { - switch (c_enum) { - case diplomat::capi::CollatorStrength_Auto: - case diplomat::capi::CollatorStrength_Primary: - case diplomat::capi::CollatorStrength_Secondary: - case diplomat::capi::CollatorStrength_Tertiary: - case diplomat::capi::CollatorStrength_Quaternary: - case diplomat::capi::CollatorStrength_Identical: - return static_cast<CollatorStrength::Value>(c_enum); - default: - abort(); - } -} -#endif // CollatorStrength_HPP diff --git a/ffi/capi/bindings/cpp/ComposingNormalizer.d.hpp b/ffi/capi/bindings/cpp/ComposingNormalizer.d.hpp deleted file mode 100644 index ddf5c81f150..00000000000 --- a/ffi/capi/bindings/cpp/ComposingNormalizer.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef ComposingNormalizer_D_HPP -#define ComposingNormalizer_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct ComposingNormalizer; -} // namespace capi -} // namespace - -class ComposingNormalizer { -public: - - inline static diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError> create_nfc(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError> create_nfkc(const DataProvider& provider); - - inline std::string normalize(std::string_view s) const; - - inline bool is_normalized(std::string_view s) const; - - inline bool is_normalized16(std::u16string_view s) const; - - inline size_t is_normalized_up_to(std::string_view s) const; - - inline size_t is_normalized16_up_to(std::u16string_view s) const; - - inline const diplomat::capi::ComposingNormalizer* AsFFI() const; - inline diplomat::capi::ComposingNormalizer* AsFFI(); - inline static const ComposingNormalizer* FromFFI(const diplomat::capi::ComposingNormalizer* ptr); - inline static ComposingNormalizer* FromFFI(diplomat::capi::ComposingNormalizer* ptr); - inline static void operator delete(void* ptr); -private: - ComposingNormalizer() = delete; - ComposingNormalizer(const ComposingNormalizer&) = delete; - ComposingNormalizer(ComposingNormalizer&&) noexcept = delete; - ComposingNormalizer operator=(const ComposingNormalizer&) = delete; - ComposingNormalizer operator=(ComposingNormalizer&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // ComposingNormalizer_D_HPP diff --git a/ffi/capi/bindings/cpp/ComposingNormalizer.hpp b/ffi/capi/bindings/cpp/ComposingNormalizer.hpp deleted file mode 100644 index 6476b3a7190..00000000000 --- a/ffi/capi/bindings/cpp/ComposingNormalizer.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef ComposingNormalizer_HPP -#define ComposingNormalizer_HPP - -#include "ComposingNormalizer.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_ComposingNormalizer_create_nfc_mv1_result {union {diplomat::capi::ComposingNormalizer* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfc_mv1_result; - icu4x_ComposingNormalizer_create_nfc_mv1_result icu4x_ComposingNormalizer_create_nfc_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_ComposingNormalizer_create_nfkc_mv1_result {union {diplomat::capi::ComposingNormalizer* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfkc_mv1_result; - icu4x_ComposingNormalizer_create_nfkc_mv1_result icu4x_ComposingNormalizer_create_nfkc_mv1(const diplomat::capi::DataProvider* provider); - - void icu4x_ComposingNormalizer_normalize_mv1(const diplomat::capi::ComposingNormalizer* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); - - bool icu4x_ComposingNormalizer_is_normalized_utf8_mv1(const diplomat::capi::ComposingNormalizer* self, const char* s_data, size_t s_len); - - bool icu4x_ComposingNormalizer_is_normalized_utf16_mv1(const diplomat::capi::ComposingNormalizer* self, const char16_t* s_data, size_t s_len); - - size_t icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(const diplomat::capi::ComposingNormalizer* self, const char* s_data, size_t s_len); - - size_t icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(const diplomat::capi::ComposingNormalizer* self, const char16_t* s_data, size_t s_len); - - - void icu4x_ComposingNormalizer_destroy_mv1(ComposingNormalizer* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError> ComposingNormalizer::create_nfc(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_ComposingNormalizer_create_nfc_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError>(diplomat::Ok<std::unique_ptr<ComposingNormalizer>>(std::unique_ptr<ComposingNormalizer>(ComposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError> ComposingNormalizer::create_nfkc(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_ComposingNormalizer_create_nfkc_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError>(diplomat::Ok<std::unique_ptr<ComposingNormalizer>>(std::unique_ptr<ComposingNormalizer>(ComposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ComposingNormalizer>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::string ComposingNormalizer::normalize(std::string_view s) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_ComposingNormalizer_normalize_mv1(this->AsFFI(), - s.data(), - s.size(), - &write); - return output; -} - -inline bool ComposingNormalizer::is_normalized(std::string_view s) const { - auto result = diplomat::capi::icu4x_ComposingNormalizer_is_normalized_utf8_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline bool ComposingNormalizer::is_normalized16(std::u16string_view s) const { - auto result = diplomat::capi::icu4x_ComposingNormalizer_is_normalized_utf16_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline size_t ComposingNormalizer::is_normalized_up_to(std::string_view s) const { - auto result = diplomat::capi::icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline size_t ComposingNormalizer::is_normalized16_up_to(std::u16string_view s) const { - auto result = diplomat::capi::icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline const diplomat::capi::ComposingNormalizer* ComposingNormalizer::AsFFI() const { - return reinterpret_cast<const diplomat::capi::ComposingNormalizer*>(this); -} - -inline diplomat::capi::ComposingNormalizer* ComposingNormalizer::AsFFI() { - return reinterpret_cast<diplomat::capi::ComposingNormalizer*>(this); -} - -inline const ComposingNormalizer* ComposingNormalizer::FromFFI(const diplomat::capi::ComposingNormalizer* ptr) { - return reinterpret_cast<const ComposingNormalizer*>(ptr); -} - -inline ComposingNormalizer* ComposingNormalizer::FromFFI(diplomat::capi::ComposingNormalizer* ptr) { - return reinterpret_cast<ComposingNormalizer*>(ptr); -} - -inline void ComposingNormalizer::operator delete(void* ptr) { - diplomat::capi::icu4x_ComposingNormalizer_destroy_mv1(reinterpret_cast<diplomat::capi::ComposingNormalizer*>(ptr)); -} - - -#endif // ComposingNormalizer_HPP diff --git a/ffi/capi/bindings/cpp/CustomTimeZone.d.hpp b/ffi/capi/bindings/cpp/CustomTimeZone.d.hpp deleted file mode 100644 index bba2fc60fa5..00000000000 --- a/ffi/capi/bindings/cpp/CustomTimeZone.d.hpp +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef CustomTimeZone_D_HPP -#define CustomTimeZone_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct MetazoneCalculator; } -class MetazoneCalculator; -namespace diplomat::capi { struct TimeZoneIdMapper; } -class TimeZoneIdMapper; -struct TimeZoneInvalidIdError; -struct TimeZoneInvalidOffsetError; - - -namespace diplomat { -namespace capi { - struct CustomTimeZone; -} // namespace capi -} // namespace - -class CustomTimeZone { -public: - - inline static diplomat::result<std::unique_ptr<CustomTimeZone>, TimeZoneInvalidOffsetError> from_string(std::string_view s); - - inline static std::unique_ptr<CustomTimeZone> empty(); - - inline static std::unique_ptr<CustomTimeZone> utc(); - - inline static std::unique_ptr<CustomTimeZone> gmt(); - - inline static std::unique_ptr<CustomTimeZone> bst(); - - inline diplomat::result<std::monostate, TimeZoneInvalidOffsetError> try_set_gmt_offset_seconds(int32_t offset_seconds); - - inline void set_gmt_offset_eighths_of_hour(int8_t offset_eighths_of_hour); - - inline void clear_gmt_offset(); - - inline std::optional<int32_t> gmt_offset_seconds() const; - - inline std::optional<bool> is_gmt_offset_positive() const; - - inline std::optional<bool> is_gmt_offset_zero() const; - - inline std::optional<bool> gmt_offset_has_minutes() const; - - inline std::optional<bool> gmt_offset_has_seconds() const; - - inline diplomat::result<std::monostate, TimeZoneInvalidIdError> try_set_time_zone_id(std::string_view id); - - inline diplomat::result<std::monostate, TimeZoneInvalidIdError> try_set_iana_time_zone_id(const TimeZoneIdMapper& mapper, std::string_view id); - - inline void clear_time_zone_id(); - - inline std::optional<std::string> time_zone_id() const; - - inline diplomat::result<std::monostate, TimeZoneInvalidIdError> try_set_metazone_id(std::string_view id); - - inline void clear_metazone_id(); - - inline std::optional<std::string> metazone_id() const; - - inline std::optional<std::monostate> try_set_zone_variant(std::string_view id); - - inline void clear_zone_variant(); - - inline std::optional<std::string> zone_variant() const; - - inline void set_standard_time(); - - inline void set_daylight_time(); - - inline std::optional<bool> is_standard_time() const; - - inline std::optional<bool> is_daylight_time() const; - - inline void maybe_calculate_metazone(const MetazoneCalculator& metazone_calculator, const IsoDateTime& local_datetime); - - inline const diplomat::capi::CustomTimeZone* AsFFI() const; - inline diplomat::capi::CustomTimeZone* AsFFI(); - inline static const CustomTimeZone* FromFFI(const diplomat::capi::CustomTimeZone* ptr); - inline static CustomTimeZone* FromFFI(diplomat::capi::CustomTimeZone* ptr); - inline static void operator delete(void* ptr); -private: - CustomTimeZone() = delete; - CustomTimeZone(const CustomTimeZone&) = delete; - CustomTimeZone(CustomTimeZone&&) noexcept = delete; - CustomTimeZone operator=(const CustomTimeZone&) = delete; - CustomTimeZone operator=(CustomTimeZone&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // CustomTimeZone_D_HPP diff --git a/ffi/capi/bindings/cpp/CustomTimeZone.hpp b/ffi/capi/bindings/cpp/CustomTimeZone.hpp deleted file mode 100644 index a0d62b931af..00000000000 --- a/ffi/capi/bindings/cpp/CustomTimeZone.hpp +++ /dev/null @@ -1,279 +0,0 @@ -#ifndef CustomTimeZone_HPP -#define CustomTimeZone_HPP - -#include "CustomTimeZone.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "IsoDateTime.hpp" -#include "MetazoneCalculator.hpp" -#include "TimeZoneIdMapper.hpp" -#include "TimeZoneInvalidIdError.hpp" -#include "TimeZoneInvalidOffsetError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_CustomTimeZone_from_string_mv1_result {union {diplomat::capi::CustomTimeZone* ok; }; bool is_ok;} icu4x_CustomTimeZone_from_string_mv1_result; - icu4x_CustomTimeZone_from_string_mv1_result icu4x_CustomTimeZone_from_string_mv1(const char* s_data, size_t s_len); - - diplomat::capi::CustomTimeZone* icu4x_CustomTimeZone_empty_mv1(void); - - diplomat::capi::CustomTimeZone* icu4x_CustomTimeZone_utc_mv1(void); - - diplomat::capi::CustomTimeZone* icu4x_CustomTimeZone_gmt_mv1(void); - - diplomat::capi::CustomTimeZone* icu4x_CustomTimeZone_bst_mv1(void); - - typedef struct icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1_result; - icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1_result icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1(diplomat::capi::CustomTimeZone* self, int32_t offset_seconds); - - void icu4x_CustomTimeZone_set_gmt_offset_eighths_of_hour_mv1(diplomat::capi::CustomTimeZone* self, int8_t offset_eighths_of_hour); - - void icu4x_CustomTimeZone_clear_gmt_offset_mv1(diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_gmt_offset_seconds_mv1_result {union {int32_t ok; }; bool is_ok;} icu4x_CustomTimeZone_gmt_offset_seconds_mv1_result; - icu4x_CustomTimeZone_gmt_offset_seconds_mv1_result icu4x_CustomTimeZone_gmt_offset_seconds_mv1(const diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_is_gmt_offset_positive_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_gmt_offset_positive_mv1_result; - icu4x_CustomTimeZone_is_gmt_offset_positive_mv1_result icu4x_CustomTimeZone_is_gmt_offset_positive_mv1(const diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_is_gmt_offset_zero_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_gmt_offset_zero_mv1_result; - icu4x_CustomTimeZone_is_gmt_offset_zero_mv1_result icu4x_CustomTimeZone_is_gmt_offset_zero_mv1(const diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1_result; - icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1_result icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1(const diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1_result; - icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1_result icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1(const diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_try_set_time_zone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_time_zone_id_mv1_result; - icu4x_CustomTimeZone_try_set_time_zone_id_mv1_result icu4x_CustomTimeZone_try_set_time_zone_id_mv1(diplomat::capi::CustomTimeZone* self, const char* id_data, size_t id_len); - - typedef struct icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1_result; - icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1_result icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1(diplomat::capi::CustomTimeZone* self, const diplomat::capi::TimeZoneIdMapper* mapper, const char* id_data, size_t id_len); - - void icu4x_CustomTimeZone_clear_time_zone_id_mv1(diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_time_zone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_time_zone_id_mv1_result; - icu4x_CustomTimeZone_time_zone_id_mv1_result icu4x_CustomTimeZone_time_zone_id_mv1(const diplomat::capi::CustomTimeZone* self, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_CustomTimeZone_try_set_metazone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_metazone_id_mv1_result; - icu4x_CustomTimeZone_try_set_metazone_id_mv1_result icu4x_CustomTimeZone_try_set_metazone_id_mv1(diplomat::capi::CustomTimeZone* self, const char* id_data, size_t id_len); - - void icu4x_CustomTimeZone_clear_metazone_id_mv1(diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_metazone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_metazone_id_mv1_result; - icu4x_CustomTimeZone_metazone_id_mv1_result icu4x_CustomTimeZone_metazone_id_mv1(const diplomat::capi::CustomTimeZone* self, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_CustomTimeZone_try_set_zone_variant_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_zone_variant_mv1_result; - icu4x_CustomTimeZone_try_set_zone_variant_mv1_result icu4x_CustomTimeZone_try_set_zone_variant_mv1(diplomat::capi::CustomTimeZone* self, const char* id_data, size_t id_len); - - void icu4x_CustomTimeZone_clear_zone_variant_mv1(diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_zone_variant_mv1_result { bool is_ok;} icu4x_CustomTimeZone_zone_variant_mv1_result; - icu4x_CustomTimeZone_zone_variant_mv1_result icu4x_CustomTimeZone_zone_variant_mv1(const diplomat::capi::CustomTimeZone* self, diplomat::capi::DiplomatWrite* write); - - void icu4x_CustomTimeZone_set_standard_time_mv1(diplomat::capi::CustomTimeZone* self); - - void icu4x_CustomTimeZone_set_daylight_time_mv1(diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_is_standard_time_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_standard_time_mv1_result; - icu4x_CustomTimeZone_is_standard_time_mv1_result icu4x_CustomTimeZone_is_standard_time_mv1(const diplomat::capi::CustomTimeZone* self); - - typedef struct icu4x_CustomTimeZone_is_daylight_time_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_daylight_time_mv1_result; - icu4x_CustomTimeZone_is_daylight_time_mv1_result icu4x_CustomTimeZone_is_daylight_time_mv1(const diplomat::capi::CustomTimeZone* self); - - void icu4x_CustomTimeZone_maybe_calculate_metazone_mv1(diplomat::capi::CustomTimeZone* self, const diplomat::capi::MetazoneCalculator* metazone_calculator, const diplomat::capi::IsoDateTime* local_datetime); - - - void icu4x_CustomTimeZone_destroy_mv1(CustomTimeZone* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<CustomTimeZone>, TimeZoneInvalidOffsetError> CustomTimeZone::from_string(std::string_view s) { - auto result = diplomat::capi::icu4x_CustomTimeZone_from_string_mv1(s.data(), - s.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<CustomTimeZone>, TimeZoneInvalidOffsetError>(diplomat::Ok<std::unique_ptr<CustomTimeZone>>(std::unique_ptr<CustomTimeZone>(CustomTimeZone::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<CustomTimeZone>, TimeZoneInvalidOffsetError>(diplomat::Err<TimeZoneInvalidOffsetError>(TimeZoneInvalidOffsetError {})); -} - -inline std::unique_ptr<CustomTimeZone> CustomTimeZone::empty() { - auto result = diplomat::capi::icu4x_CustomTimeZone_empty_mv1(); - return std::unique_ptr<CustomTimeZone>(CustomTimeZone::FromFFI(result)); -} - -inline std::unique_ptr<CustomTimeZone> CustomTimeZone::utc() { - auto result = diplomat::capi::icu4x_CustomTimeZone_utc_mv1(); - return std::unique_ptr<CustomTimeZone>(CustomTimeZone::FromFFI(result)); -} - -inline std::unique_ptr<CustomTimeZone> CustomTimeZone::gmt() { - auto result = diplomat::capi::icu4x_CustomTimeZone_gmt_mv1(); - return std::unique_ptr<CustomTimeZone>(CustomTimeZone::FromFFI(result)); -} - -inline std::unique_ptr<CustomTimeZone> CustomTimeZone::bst() { - auto result = diplomat::capi::icu4x_CustomTimeZone_bst_mv1(); - return std::unique_ptr<CustomTimeZone>(CustomTimeZone::FromFFI(result)); -} - -inline diplomat::result<std::monostate, TimeZoneInvalidOffsetError> CustomTimeZone::try_set_gmt_offset_seconds(int32_t offset_seconds) { - auto result = diplomat::capi::icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1(this->AsFFI(), - offset_seconds); - return result.is_ok ? diplomat::result<std::monostate, TimeZoneInvalidOffsetError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, TimeZoneInvalidOffsetError>(diplomat::Err<TimeZoneInvalidOffsetError>(TimeZoneInvalidOffsetError {})); -} - -inline void CustomTimeZone::set_gmt_offset_eighths_of_hour(int8_t offset_eighths_of_hour) { - diplomat::capi::icu4x_CustomTimeZone_set_gmt_offset_eighths_of_hour_mv1(this->AsFFI(), - offset_eighths_of_hour); -} - -inline void CustomTimeZone::clear_gmt_offset() { - diplomat::capi::icu4x_CustomTimeZone_clear_gmt_offset_mv1(this->AsFFI()); -} - -inline std::optional<int32_t> CustomTimeZone::gmt_offset_seconds() const { - auto result = diplomat::capi::icu4x_CustomTimeZone_gmt_offset_seconds_mv1(this->AsFFI()); - return result.is_ok ? std::optional<int32_t>(result.ok) : std::nullopt; -} - -inline std::optional<bool> CustomTimeZone::is_gmt_offset_positive() const { - auto result = diplomat::capi::icu4x_CustomTimeZone_is_gmt_offset_positive_mv1(this->AsFFI()); - return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; -} - -inline std::optional<bool> CustomTimeZone::is_gmt_offset_zero() const { - auto result = diplomat::capi::icu4x_CustomTimeZone_is_gmt_offset_zero_mv1(this->AsFFI()); - return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; -} - -inline std::optional<bool> CustomTimeZone::gmt_offset_has_minutes() const { - auto result = diplomat::capi::icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1(this->AsFFI()); - return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; -} - -inline std::optional<bool> CustomTimeZone::gmt_offset_has_seconds() const { - auto result = diplomat::capi::icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1(this->AsFFI()); - return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; -} - -inline diplomat::result<std::monostate, TimeZoneInvalidIdError> CustomTimeZone::try_set_time_zone_id(std::string_view id) { - auto result = diplomat::capi::icu4x_CustomTimeZone_try_set_time_zone_id_mv1(this->AsFFI(), - id.data(), - id.size()); - return result.is_ok ? diplomat::result<std::monostate, TimeZoneInvalidIdError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {})); -} - -inline diplomat::result<std::monostate, TimeZoneInvalidIdError> CustomTimeZone::try_set_iana_time_zone_id(const TimeZoneIdMapper& mapper, std::string_view id) { - auto result = diplomat::capi::icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1(this->AsFFI(), - mapper.AsFFI(), - id.data(), - id.size()); - return result.is_ok ? diplomat::result<std::monostate, TimeZoneInvalidIdError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {})); -} - -inline void CustomTimeZone::clear_time_zone_id() { - diplomat::capi::icu4x_CustomTimeZone_clear_time_zone_id_mv1(this->AsFFI()); -} - -inline std::optional<std::string> CustomTimeZone::time_zone_id() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_CustomTimeZone_time_zone_id_mv1(this->AsFFI(), - &write); - return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; -} - -inline diplomat::result<std::monostate, TimeZoneInvalidIdError> CustomTimeZone::try_set_metazone_id(std::string_view id) { - auto result = diplomat::capi::icu4x_CustomTimeZone_try_set_metazone_id_mv1(this->AsFFI(), - id.data(), - id.size()); - return result.is_ok ? diplomat::result<std::monostate, TimeZoneInvalidIdError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {})); -} - -inline void CustomTimeZone::clear_metazone_id() { - diplomat::capi::icu4x_CustomTimeZone_clear_metazone_id_mv1(this->AsFFI()); -} - -inline std::optional<std::string> CustomTimeZone::metazone_id() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_CustomTimeZone_metazone_id_mv1(this->AsFFI(), - &write); - return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; -} - -inline std::optional<std::monostate> CustomTimeZone::try_set_zone_variant(std::string_view id) { - auto result = diplomat::capi::icu4x_CustomTimeZone_try_set_zone_variant_mv1(this->AsFFI(), - id.data(), - id.size()); - return result.is_ok ? std::optional<std::monostate>() : std::nullopt; -} - -inline void CustomTimeZone::clear_zone_variant() { - diplomat::capi::icu4x_CustomTimeZone_clear_zone_variant_mv1(this->AsFFI()); -} - -inline std::optional<std::string> CustomTimeZone::zone_variant() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_CustomTimeZone_zone_variant_mv1(this->AsFFI(), - &write); - return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; -} - -inline void CustomTimeZone::set_standard_time() { - diplomat::capi::icu4x_CustomTimeZone_set_standard_time_mv1(this->AsFFI()); -} - -inline void CustomTimeZone::set_daylight_time() { - diplomat::capi::icu4x_CustomTimeZone_set_daylight_time_mv1(this->AsFFI()); -} - -inline std::optional<bool> CustomTimeZone::is_standard_time() const { - auto result = diplomat::capi::icu4x_CustomTimeZone_is_standard_time_mv1(this->AsFFI()); - return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; -} - -inline std::optional<bool> CustomTimeZone::is_daylight_time() const { - auto result = diplomat::capi::icu4x_CustomTimeZone_is_daylight_time_mv1(this->AsFFI()); - return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; -} - -inline void CustomTimeZone::maybe_calculate_metazone(const MetazoneCalculator& metazone_calculator, const IsoDateTime& local_datetime) { - diplomat::capi::icu4x_CustomTimeZone_maybe_calculate_metazone_mv1(this->AsFFI(), - metazone_calculator.AsFFI(), - local_datetime.AsFFI()); -} - -inline const diplomat::capi::CustomTimeZone* CustomTimeZone::AsFFI() const { - return reinterpret_cast<const diplomat::capi::CustomTimeZone*>(this); -} - -inline diplomat::capi::CustomTimeZone* CustomTimeZone::AsFFI() { - return reinterpret_cast<diplomat::capi::CustomTimeZone*>(this); -} - -inline const CustomTimeZone* CustomTimeZone::FromFFI(const diplomat::capi::CustomTimeZone* ptr) { - return reinterpret_cast<const CustomTimeZone*>(ptr); -} - -inline CustomTimeZone* CustomTimeZone::FromFFI(diplomat::capi::CustomTimeZone* ptr) { - return reinterpret_cast<CustomTimeZone*>(ptr); -} - -inline void CustomTimeZone::operator delete(void* ptr) { - diplomat::capi::icu4x_CustomTimeZone_destroy_mv1(reinterpret_cast<diplomat::capi::CustomTimeZone*>(ptr)); -} - - -#endif // CustomTimeZone_HPP diff --git a/ffi/capi/bindings/cpp/DataError.hpp b/ffi/capi/bindings/cpp/DataError.hpp deleted file mode 100644 index 1c95047c81c..00000000000 --- a/ffi/capi/bindings/cpp/DataError.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef DataError_HPP -#define DataError_HPP - -#include "DataError.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::DataError DataError::AsFFI() const { - return static_cast<diplomat::capi::DataError>(value); -} - -inline DataError DataError::FromFFI(diplomat::capi::DataError c_enum) { - switch (c_enum) { - case diplomat::capi::DataError_Unknown: - case diplomat::capi::DataError_MarkerNotFound: - case diplomat::capi::DataError_IdentifierNotFound: - case diplomat::capi::DataError_InvalidRequest: - case diplomat::capi::DataError_InconsistentData: - case diplomat::capi::DataError_Downcast: - case diplomat::capi::DataError_Deserialize: - case diplomat::capi::DataError_Custom: - case diplomat::capi::DataError_Io: - return static_cast<DataError::Value>(c_enum); - default: - abort(); - } -} -#endif // DataError_HPP diff --git a/ffi/capi/bindings/cpp/DataProvider.d.hpp b/ffi/capi/bindings/cpp/DataProvider.d.hpp deleted file mode 100644 index 2b486797254..00000000000 --- a/ffi/capi/bindings/cpp/DataProvider.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef DataProvider_D_HPP -#define DataProvider_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct LocaleFallbacker; } -class LocaleFallbacker; -class DataError; - - -namespace diplomat { -namespace capi { - struct DataProvider; -} // namespace capi -} // namespace - -class DataProvider { -public: - - inline static std::unique_ptr<DataProvider> compiled(); - - inline static diplomat::result<std::unique_ptr<DataProvider>, DataError> from_fs(std::string_view path); - - inline static diplomat::result<std::unique_ptr<DataProvider>, DataError> from_byte_slice(diplomat::span<const uint8_t> blob); - - inline static std::unique_ptr<DataProvider> empty(); - - inline diplomat::result<std::monostate, DataError> fork_by_key(DataProvider& other); - - inline diplomat::result<std::monostate, DataError> fork_by_locale(DataProvider& other); - - inline diplomat::result<std::monostate, DataError> enable_locale_fallback_with(const LocaleFallbacker& fallbacker); - - inline const diplomat::capi::DataProvider* AsFFI() const; - inline diplomat::capi::DataProvider* AsFFI(); - inline static const DataProvider* FromFFI(const diplomat::capi::DataProvider* ptr); - inline static DataProvider* FromFFI(diplomat::capi::DataProvider* ptr); - inline static void operator delete(void* ptr); -private: - DataProvider() = delete; - DataProvider(const DataProvider&) = delete; - DataProvider(DataProvider&&) noexcept = delete; - DataProvider operator=(const DataProvider&) = delete; - DataProvider operator=(DataProvider&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // DataProvider_D_HPP diff --git a/ffi/capi/bindings/cpp/DataProvider.hpp b/ffi/capi/bindings/cpp/DataProvider.hpp deleted file mode 100644 index 928f5bdf39c..00000000000 --- a/ffi/capi/bindings/cpp/DataProvider.hpp +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef DataProvider_HPP -#define DataProvider_HPP - -#include "DataProvider.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "LocaleFallbacker.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::DataProvider* icu4x_DataProvider_compiled_mv1(void); - - typedef struct icu4x_DataProvider_from_fs_mv1_result {union {diplomat::capi::DataProvider* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_fs_mv1_result; - icu4x_DataProvider_from_fs_mv1_result icu4x_DataProvider_from_fs_mv1(const char* path_data, size_t path_len); - - typedef struct icu4x_DataProvider_from_byte_slice_mv1_result {union {diplomat::capi::DataProvider* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_byte_slice_mv1_result; - icu4x_DataProvider_from_byte_slice_mv1_result icu4x_DataProvider_from_byte_slice_mv1(const uint8_t* blob_data, size_t blob_len); - - diplomat::capi::DataProvider* icu4x_DataProvider_empty_mv1(void); - - typedef struct icu4x_DataProvider_fork_by_key_mv1_result {union { diplomat::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_key_mv1_result; - icu4x_DataProvider_fork_by_key_mv1_result icu4x_DataProvider_fork_by_key_mv1(diplomat::capi::DataProvider* self, diplomat::capi::DataProvider* other); - - typedef struct icu4x_DataProvider_fork_by_locale_mv1_result {union { diplomat::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_locale_mv1_result; - icu4x_DataProvider_fork_by_locale_mv1_result icu4x_DataProvider_fork_by_locale_mv1(diplomat::capi::DataProvider* self, diplomat::capi::DataProvider* other); - - typedef struct icu4x_DataProvider_enable_locale_fallback_with_mv1_result {union { diplomat::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_enable_locale_fallback_with_mv1_result; - icu4x_DataProvider_enable_locale_fallback_with_mv1_result icu4x_DataProvider_enable_locale_fallback_with_mv1(diplomat::capi::DataProvider* self, const diplomat::capi::LocaleFallbacker* fallbacker); - - - void icu4x_DataProvider_destroy_mv1(DataProvider* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline std::unique_ptr<DataProvider> DataProvider::compiled() { - auto result = diplomat::capi::icu4x_DataProvider_compiled_mv1(); - return std::unique_ptr<DataProvider>(DataProvider::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<DataProvider>, DataError> DataProvider::from_fs(std::string_view path) { - auto result = diplomat::capi::icu4x_DataProvider_from_fs_mv1(path.data(), - path.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<DataProvider>, DataError>(diplomat::Ok<std::unique_ptr<DataProvider>>(std::unique_ptr<DataProvider>(DataProvider::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DataProvider>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<DataProvider>, DataError> DataProvider::from_byte_slice(diplomat::span<const uint8_t> blob) { - auto result = diplomat::capi::icu4x_DataProvider_from_byte_slice_mv1(blob.data(), - blob.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<DataProvider>, DataError>(diplomat::Ok<std::unique_ptr<DataProvider>>(std::unique_ptr<DataProvider>(DataProvider::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DataProvider>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<DataProvider> DataProvider::empty() { - auto result = diplomat::capi::icu4x_DataProvider_empty_mv1(); - return std::unique_ptr<DataProvider>(DataProvider::FromFFI(result)); -} - -inline diplomat::result<std::monostate, DataError> DataProvider::fork_by_key(DataProvider& other) { - auto result = diplomat::capi::icu4x_DataProvider_fork_by_key_mv1(this->AsFFI(), - other.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, DataError> DataProvider::fork_by_locale(DataProvider& other) { - auto result = diplomat::capi::icu4x_DataProvider_fork_by_locale_mv1(this->AsFFI(), - other.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, DataError> DataProvider::enable_locale_fallback_with(const LocaleFallbacker& fallbacker) { - auto result = diplomat::capi::icu4x_DataProvider_enable_locale_fallback_with_mv1(this->AsFFI(), - fallbacker.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline const diplomat::capi::DataProvider* DataProvider::AsFFI() const { - return reinterpret_cast<const diplomat::capi::DataProvider*>(this); -} - -inline diplomat::capi::DataProvider* DataProvider::AsFFI() { - return reinterpret_cast<diplomat::capi::DataProvider*>(this); -} - -inline const DataProvider* DataProvider::FromFFI(const diplomat::capi::DataProvider* ptr) { - return reinterpret_cast<const DataProvider*>(ptr); -} - -inline DataProvider* DataProvider::FromFFI(diplomat::capi::DataProvider* ptr) { - return reinterpret_cast<DataProvider*>(ptr); -} - -inline void DataProvider::operator delete(void* ptr) { - diplomat::capi::icu4x_DataProvider_destroy_mv1(reinterpret_cast<diplomat::capi::DataProvider*>(ptr)); -} - - -#endif // DataProvider_HPP diff --git a/ffi/capi/bindings/cpp/Date.d.hpp b/ffi/capi/bindings/cpp/Date.d.hpp deleted file mode 100644 index affe42f5a38..00000000000 --- a/ffi/capi/bindings/cpp/Date.d.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef Date_D_HPP -#define Date_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct Calendar; } -class Calendar; -namespace diplomat::capi { struct IsoDate; } -class IsoDate; -namespace diplomat::capi { struct WeekCalculator; } -class WeekCalculator; -struct WeekOf; -class CalendarError; -class CalendarParseError; -class IsoWeekday; - - -namespace diplomat { -namespace capi { - struct Date; -} // namespace capi -} // namespace - -class Date { -public: - - inline static diplomat::result<std::unique_ptr<Date>, CalendarError> from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const Calendar& calendar); - - inline static diplomat::result<std::unique_ptr<Date>, CalendarError> from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const Calendar& calendar); - - inline static diplomat::result<std::unique_ptr<Date>, CalendarParseError> from_string(std::string_view v); - - inline std::unique_ptr<Date> to_calendar(const Calendar& calendar) const; - - inline std::unique_ptr<IsoDate> to_iso() const; - - inline uint16_t day_of_year() const; - - inline uint32_t day_of_month() const; - - inline IsoWeekday day_of_week() const; - - inline uint32_t week_of_month(IsoWeekday first_weekday) const; - - inline WeekOf week_of_year(const WeekCalculator& calculator) const; - - inline uint32_t ordinal_month() const; - - inline std::string month_code() const; - - inline int32_t year_in_era() const; - - inline std::string era() const; - - inline uint8_t months_in_year() const; - - inline uint8_t days_in_month() const; - - inline uint16_t days_in_year() const; - - inline std::unique_ptr<Calendar> calendar() const; - - inline const diplomat::capi::Date* AsFFI() const; - inline diplomat::capi::Date* AsFFI(); - inline static const Date* FromFFI(const diplomat::capi::Date* ptr); - inline static Date* FromFFI(diplomat::capi::Date* ptr); - inline static void operator delete(void* ptr); -private: - Date() = delete; - Date(const Date&) = delete; - Date(Date&&) noexcept = delete; - Date operator=(const Date&) = delete; - Date operator=(Date&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // Date_D_HPP diff --git a/ffi/capi/bindings/cpp/Date.hpp b/ffi/capi/bindings/cpp/Date.hpp deleted file mode 100644 index 23ce507331a..00000000000 --- a/ffi/capi/bindings/cpp/Date.hpp +++ /dev/null @@ -1,202 +0,0 @@ -#ifndef Date_HPP -#define Date_HPP - -#include "Date.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "Calendar.hpp" -#include "CalendarError.hpp" -#include "CalendarParseError.hpp" -#include "IsoDate.hpp" -#include "IsoWeekday.hpp" -#include "WeekCalculator.hpp" -#include "WeekOf.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_Date_from_iso_in_calendar_mv1_result {union {diplomat::capi::Date* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_iso_in_calendar_mv1_result; - icu4x_Date_from_iso_in_calendar_mv1_result icu4x_Date_from_iso_in_calendar_mv1(int32_t year, uint8_t month, uint8_t day, const diplomat::capi::Calendar* calendar); - - typedef struct icu4x_Date_from_codes_in_calendar_mv1_result {union {diplomat::capi::Date* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_codes_in_calendar_mv1_result; - icu4x_Date_from_codes_in_calendar_mv1_result icu4x_Date_from_codes_in_calendar_mv1(const char* era_code_data, size_t era_code_len, int32_t year, const char* month_code_data, size_t month_code_len, uint8_t day, const diplomat::capi::Calendar* calendar); - - typedef struct icu4x_Date_from_string_mv1_result {union {diplomat::capi::Date* ok; diplomat::capi::CalendarParseError err;}; bool is_ok;} icu4x_Date_from_string_mv1_result; - icu4x_Date_from_string_mv1_result icu4x_Date_from_string_mv1(const char* v_data, size_t v_len); - - diplomat::capi::Date* icu4x_Date_to_calendar_mv1(const diplomat::capi::Date* self, const diplomat::capi::Calendar* calendar); - - diplomat::capi::IsoDate* icu4x_Date_to_iso_mv1(const diplomat::capi::Date* self); - - uint16_t icu4x_Date_day_of_year_mv1(const diplomat::capi::Date* self); - - uint32_t icu4x_Date_day_of_month_mv1(const diplomat::capi::Date* self); - - diplomat::capi::IsoWeekday icu4x_Date_day_of_week_mv1(const diplomat::capi::Date* self); - - uint32_t icu4x_Date_week_of_month_mv1(const diplomat::capi::Date* self, diplomat::capi::IsoWeekday first_weekday); - - diplomat::capi::WeekOf icu4x_Date_week_of_year_mv1(const diplomat::capi::Date* self, const diplomat::capi::WeekCalculator* calculator); - - uint32_t icu4x_Date_ordinal_month_mv1(const diplomat::capi::Date* self); - - void icu4x_Date_month_code_mv1(const diplomat::capi::Date* self, diplomat::capi::DiplomatWrite* write); - - int32_t icu4x_Date_year_in_era_mv1(const diplomat::capi::Date* self); - - void icu4x_Date_era_mv1(const diplomat::capi::Date* self, diplomat::capi::DiplomatWrite* write); - - uint8_t icu4x_Date_months_in_year_mv1(const diplomat::capi::Date* self); - - uint8_t icu4x_Date_days_in_month_mv1(const diplomat::capi::Date* self); - - uint16_t icu4x_Date_days_in_year_mv1(const diplomat::capi::Date* self); - - diplomat::capi::Calendar* icu4x_Date_calendar_mv1(const diplomat::capi::Date* self); - - - void icu4x_Date_destroy_mv1(Date* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<Date>, CalendarError> Date::from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const Calendar& calendar) { - auto result = diplomat::capi::icu4x_Date_from_iso_in_calendar_mv1(year, - month, - day, - calendar.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<Date>, CalendarError>(diplomat::Ok<std::unique_ptr<Date>>(std::unique_ptr<Date>(Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Date>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<Date>, CalendarError> Date::from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const Calendar& calendar) { - auto result = diplomat::capi::icu4x_Date_from_codes_in_calendar_mv1(era_code.data(), - era_code.size(), - year, - month_code.data(), - month_code.size(), - day, - calendar.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<Date>, CalendarError>(diplomat::Ok<std::unique_ptr<Date>>(std::unique_ptr<Date>(Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Date>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<Date>, CalendarParseError> Date::from_string(std::string_view v) { - auto result = diplomat::capi::icu4x_Date_from_string_mv1(v.data(), - v.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<Date>, CalendarParseError>(diplomat::Ok<std::unique_ptr<Date>>(std::unique_ptr<Date>(Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Date>, CalendarParseError>(diplomat::Err<CalendarParseError>(CalendarParseError::FromFFI(result.err))); -} - -inline std::unique_ptr<Date> Date::to_calendar(const Calendar& calendar) const { - auto result = diplomat::capi::icu4x_Date_to_calendar_mv1(this->AsFFI(), - calendar.AsFFI()); - return std::unique_ptr<Date>(Date::FromFFI(result)); -} - -inline std::unique_ptr<IsoDate> Date::to_iso() const { - auto result = diplomat::capi::icu4x_Date_to_iso_mv1(this->AsFFI()); - return std::unique_ptr<IsoDate>(IsoDate::FromFFI(result)); -} - -inline uint16_t Date::day_of_year() const { - auto result = diplomat::capi::icu4x_Date_day_of_year_mv1(this->AsFFI()); - return result; -} - -inline uint32_t Date::day_of_month() const { - auto result = diplomat::capi::icu4x_Date_day_of_month_mv1(this->AsFFI()); - return result; -} - -inline IsoWeekday Date::day_of_week() const { - auto result = diplomat::capi::icu4x_Date_day_of_week_mv1(this->AsFFI()); - return IsoWeekday::FromFFI(result); -} - -inline uint32_t Date::week_of_month(IsoWeekday first_weekday) const { - auto result = diplomat::capi::icu4x_Date_week_of_month_mv1(this->AsFFI(), - first_weekday.AsFFI()); - return result; -} - -inline WeekOf Date::week_of_year(const WeekCalculator& calculator) const { - auto result = diplomat::capi::icu4x_Date_week_of_year_mv1(this->AsFFI(), - calculator.AsFFI()); - return WeekOf::FromFFI(result); -} - -inline uint32_t Date::ordinal_month() const { - auto result = diplomat::capi::icu4x_Date_ordinal_month_mv1(this->AsFFI()); - return result; -} - -inline std::string Date::month_code() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_Date_month_code_mv1(this->AsFFI(), - &write); - return output; -} - -inline int32_t Date::year_in_era() const { - auto result = diplomat::capi::icu4x_Date_year_in_era_mv1(this->AsFFI()); - return result; -} - -inline std::string Date::era() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_Date_era_mv1(this->AsFFI(), - &write); - return output; -} - -inline uint8_t Date::months_in_year() const { - auto result = diplomat::capi::icu4x_Date_months_in_year_mv1(this->AsFFI()); - return result; -} - -inline uint8_t Date::days_in_month() const { - auto result = diplomat::capi::icu4x_Date_days_in_month_mv1(this->AsFFI()); - return result; -} - -inline uint16_t Date::days_in_year() const { - auto result = diplomat::capi::icu4x_Date_days_in_year_mv1(this->AsFFI()); - return result; -} - -inline std::unique_ptr<Calendar> Date::calendar() const { - auto result = diplomat::capi::icu4x_Date_calendar_mv1(this->AsFFI()); - return std::unique_ptr<Calendar>(Calendar::FromFFI(result)); -} - -inline const diplomat::capi::Date* Date::AsFFI() const { - return reinterpret_cast<const diplomat::capi::Date*>(this); -} - -inline diplomat::capi::Date* Date::AsFFI() { - return reinterpret_cast<diplomat::capi::Date*>(this); -} - -inline const Date* Date::FromFFI(const diplomat::capi::Date* ptr) { - return reinterpret_cast<const Date*>(ptr); -} - -inline Date* Date::FromFFI(diplomat::capi::Date* ptr) { - return reinterpret_cast<Date*>(ptr); -} - -inline void Date::operator delete(void* ptr) { - diplomat::capi::icu4x_Date_destroy_mv1(reinterpret_cast<diplomat::capi::Date*>(ptr)); -} - - -#endif // Date_HPP diff --git a/ffi/capi/bindings/cpp/DateFormatter.d.hpp b/ffi/capi/bindings/cpp/DateFormatter.d.hpp deleted file mode 100644 index 6bed3daa026..00000000000 --- a/ffi/capi/bindings/cpp/DateFormatter.d.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef DateFormatter_D_HPP -#define DateFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Date; } -class Date; -namespace diplomat::capi { struct DateTime; } -class DateTime; -namespace diplomat::capi { struct IsoDate; } -class IsoDate; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Locale; } -class Locale; -class DateLength; -class Error; - - -namespace diplomat { -namespace capi { - struct DateFormatter; -} // namespace capi -} // namespace - -class DateFormatter { -public: - - inline static diplomat::result<std::unique_ptr<DateFormatter>, Error> create_with_length(const DataProvider& provider, const Locale& locale, DateLength date_length); - - inline diplomat::result<std::string, Error> format_date(const Date& value) const; - - inline diplomat::result<std::string, Error> format_iso_date(const IsoDate& value) const; - - inline diplomat::result<std::string, Error> format_datetime(const DateTime& value) const; - - inline diplomat::result<std::string, Error> format_iso_datetime(const IsoDateTime& value) const; - - inline const diplomat::capi::DateFormatter* AsFFI() const; - inline diplomat::capi::DateFormatter* AsFFI(); - inline static const DateFormatter* FromFFI(const diplomat::capi::DateFormatter* ptr); - inline static DateFormatter* FromFFI(diplomat::capi::DateFormatter* ptr); - inline static void operator delete(void* ptr); -private: - DateFormatter() = delete; - DateFormatter(const DateFormatter&) = delete; - DateFormatter(DateFormatter&&) noexcept = delete; - DateFormatter operator=(const DateFormatter&) = delete; - DateFormatter operator=(DateFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // DateFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/DateFormatter.hpp b/ffi/capi/bindings/cpp/DateFormatter.hpp deleted file mode 100644 index a78bf92f5fb..00000000000 --- a/ffi/capi/bindings/cpp/DateFormatter.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef DateFormatter_HPP -#define DateFormatter_HPP - -#include "DateFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataProvider.hpp" -#include "Date.hpp" -#include "DateLength.hpp" -#include "DateTime.hpp" -#include "Error.hpp" -#include "IsoDate.hpp" -#include "IsoDateTime.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_DateFormatter_create_with_length_mv1_result {union {diplomat::capi::DateFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_create_with_length_mv1_result; - icu4x_DateFormatter_create_with_length_mv1_result icu4x_DateFormatter_create_with_length_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength date_length); - - typedef struct icu4x_DateFormatter_format_date_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_date_mv1_result; - icu4x_DateFormatter_format_date_mv1_result icu4x_DateFormatter_format_date_mv1(const diplomat::capi::DateFormatter* self, const diplomat::capi::Date* value, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_DateFormatter_format_iso_date_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_iso_date_mv1_result; - icu4x_DateFormatter_format_iso_date_mv1_result icu4x_DateFormatter_format_iso_date_mv1(const diplomat::capi::DateFormatter* self, const diplomat::capi::IsoDate* value, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_DateFormatter_format_datetime_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_datetime_mv1_result; - icu4x_DateFormatter_format_datetime_mv1_result icu4x_DateFormatter_format_datetime_mv1(const diplomat::capi::DateFormatter* self, const diplomat::capi::DateTime* value, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_DateFormatter_format_iso_datetime_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_iso_datetime_mv1_result; - icu4x_DateFormatter_format_iso_datetime_mv1_result icu4x_DateFormatter_format_iso_datetime_mv1(const diplomat::capi::DateFormatter* self, const diplomat::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); - - - void icu4x_DateFormatter_destroy_mv1(DateFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<DateFormatter>, Error> DateFormatter::create_with_length(const DataProvider& provider, const Locale& locale, DateLength date_length) { - auto result = diplomat::capi::icu4x_DateFormatter_create_with_length_mv1(provider.AsFFI(), - locale.AsFFI(), - date_length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<DateFormatter>, Error>(diplomat::Ok<std::unique_ptr<DateFormatter>>(std::unique_ptr<DateFormatter>(DateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DateFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> DateFormatter::format_date(const Date& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_DateFormatter_format_date_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> DateFormatter::format_iso_date(const IsoDate& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_DateFormatter_format_iso_date_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> DateFormatter::format_datetime(const DateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_DateFormatter_format_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> DateFormatter::format_iso_datetime(const IsoDateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_DateFormatter_format_iso_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline const diplomat::capi::DateFormatter* DateFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::DateFormatter*>(this); -} - -inline diplomat::capi::DateFormatter* DateFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::DateFormatter*>(this); -} - -inline const DateFormatter* DateFormatter::FromFFI(const diplomat::capi::DateFormatter* ptr) { - return reinterpret_cast<const DateFormatter*>(ptr); -} - -inline DateFormatter* DateFormatter::FromFFI(diplomat::capi::DateFormatter* ptr) { - return reinterpret_cast<DateFormatter*>(ptr); -} - -inline void DateFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_DateFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::DateFormatter*>(ptr)); -} - - -#endif // DateFormatter_HPP diff --git a/ffi/capi/bindings/cpp/DateLength.hpp b/ffi/capi/bindings/cpp/DateLength.hpp deleted file mode 100644 index 21f030e2069..00000000000 --- a/ffi/capi/bindings/cpp/DateLength.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef DateLength_HPP -#define DateLength_HPP - -#include "DateLength.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::DateLength DateLength::AsFFI() const { - return static_cast<diplomat::capi::DateLength>(value); -} - -inline DateLength DateLength::FromFFI(diplomat::capi::DateLength c_enum) { - switch (c_enum) { - case diplomat::capi::DateLength_Full: - case diplomat::capi::DateLength_Long: - case diplomat::capi::DateLength_Medium: - case diplomat::capi::DateLength_Short: - return static_cast<DateLength::Value>(c_enum); - default: - abort(); - } -} -#endif // DateLength_HPP diff --git a/ffi/capi/bindings/cpp/DateTime.d.hpp b/ffi/capi/bindings/cpp/DateTime.d.hpp deleted file mode 100644 index 62633c065eb..00000000000 --- a/ffi/capi/bindings/cpp/DateTime.d.hpp +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef DateTime_D_HPP -#define DateTime_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct Calendar; } -class Calendar; -namespace diplomat::capi { struct Date; } -class Date; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Time; } -class Time; -namespace diplomat::capi { struct WeekCalculator; } -class WeekCalculator; -struct WeekOf; -class CalendarError; -class CalendarParseError; -class IsoWeekday; - - -namespace diplomat { -namespace capi { - struct DateTime; -} // namespace capi -} // namespace - -class DateTime { -public: - - inline static diplomat::result<std::unique_ptr<DateTime>, CalendarError> from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const Calendar& calendar); - - inline static diplomat::result<std::unique_ptr<DateTime>, CalendarError> from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const Calendar& calendar); - - inline static std::unique_ptr<DateTime> from_date_and_time(const Date& date, const Time& time); - - inline static diplomat::result<std::unique_ptr<DateTime>, CalendarParseError> from_string(std::string_view v); - - inline std::unique_ptr<Date> date() const; - - inline std::unique_ptr<Time> time() const; - - inline std::unique_ptr<IsoDateTime> to_iso() const; - - inline std::unique_ptr<DateTime> to_calendar(const Calendar& calendar) const; - - inline uint8_t hour() const; - - inline uint8_t minute() const; - - inline uint8_t second() const; - - inline uint32_t nanosecond() const; - - inline uint16_t day_of_year() const; - - inline uint32_t day_of_month() const; - - inline IsoWeekday day_of_week() const; - - inline uint32_t week_of_month(IsoWeekday first_weekday) const; - - inline WeekOf week_of_year(const WeekCalculator& calculator) const; - - inline uint32_t ordinal_month() const; - - inline std::string month_code() const; - - inline int32_t year_in_era() const; - - inline std::string era() const; - - inline uint8_t months_in_year() const; - - inline uint8_t days_in_month() const; - - inline uint16_t days_in_year() const; - - inline std::unique_ptr<Calendar> calendar() const; - - inline const diplomat::capi::DateTime* AsFFI() const; - inline diplomat::capi::DateTime* AsFFI(); - inline static const DateTime* FromFFI(const diplomat::capi::DateTime* ptr); - inline static DateTime* FromFFI(diplomat::capi::DateTime* ptr); - inline static void operator delete(void* ptr); -private: - DateTime() = delete; - DateTime(const DateTime&) = delete; - DateTime(DateTime&&) noexcept = delete; - DateTime operator=(const DateTime&) = delete; - DateTime operator=(DateTime&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // DateTime_D_HPP diff --git a/ffi/capi/bindings/cpp/DateTime.hpp b/ffi/capi/bindings/cpp/DateTime.hpp deleted file mode 100644 index c818b22e920..00000000000 --- a/ffi/capi/bindings/cpp/DateTime.hpp +++ /dev/null @@ -1,262 +0,0 @@ -#ifndef DateTime_HPP -#define DateTime_HPP - -#include "DateTime.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "Calendar.hpp" -#include "CalendarError.hpp" -#include "CalendarParseError.hpp" -#include "Date.hpp" -#include "IsoDateTime.hpp" -#include "IsoWeekday.hpp" -#include "Time.hpp" -#include "WeekCalculator.hpp" -#include "WeekOf.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_DateTime_from_iso_in_calendar_mv1_result {union {diplomat::capi::DateTime* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_DateTime_from_iso_in_calendar_mv1_result; - icu4x_DateTime_from_iso_in_calendar_mv1_result icu4x_DateTime_from_iso_in_calendar_mv1(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const diplomat::capi::Calendar* calendar); - - typedef struct icu4x_DateTime_from_codes_in_calendar_mv1_result {union {diplomat::capi::DateTime* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_DateTime_from_codes_in_calendar_mv1_result; - icu4x_DateTime_from_codes_in_calendar_mv1_result icu4x_DateTime_from_codes_in_calendar_mv1(const char* era_code_data, size_t era_code_len, int32_t year, const char* month_code_data, size_t month_code_len, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const diplomat::capi::Calendar* calendar); - - diplomat::capi::DateTime* icu4x_DateTime_from_date_and_time_mv1(const diplomat::capi::Date* date, const diplomat::capi::Time* time); - - typedef struct icu4x_DateTime_from_string_mv1_result {union {diplomat::capi::DateTime* ok; diplomat::capi::CalendarParseError err;}; bool is_ok;} icu4x_DateTime_from_string_mv1_result; - icu4x_DateTime_from_string_mv1_result icu4x_DateTime_from_string_mv1(const char* v_data, size_t v_len); - - diplomat::capi::Date* icu4x_DateTime_date_mv1(const diplomat::capi::DateTime* self); - - diplomat::capi::Time* icu4x_DateTime_time_mv1(const diplomat::capi::DateTime* self); - - diplomat::capi::IsoDateTime* icu4x_DateTime_to_iso_mv1(const diplomat::capi::DateTime* self); - - diplomat::capi::DateTime* icu4x_DateTime_to_calendar_mv1(const diplomat::capi::DateTime* self, const diplomat::capi::Calendar* calendar); - - uint8_t icu4x_DateTime_hour_mv1(const diplomat::capi::DateTime* self); - - uint8_t icu4x_DateTime_minute_mv1(const diplomat::capi::DateTime* self); - - uint8_t icu4x_DateTime_second_mv1(const diplomat::capi::DateTime* self); - - uint32_t icu4x_DateTime_nanosecond_mv1(const diplomat::capi::DateTime* self); - - uint16_t icu4x_DateTime_day_of_year_mv1(const diplomat::capi::DateTime* self); - - uint32_t icu4x_DateTime_day_of_month_mv1(const diplomat::capi::DateTime* self); - - diplomat::capi::IsoWeekday icu4x_DateTime_day_of_week_mv1(const diplomat::capi::DateTime* self); - - uint32_t icu4x_DateTime_week_of_month_mv1(const diplomat::capi::DateTime* self, diplomat::capi::IsoWeekday first_weekday); - - diplomat::capi::WeekOf icu4x_DateTime_week_of_year_mv1(const diplomat::capi::DateTime* self, const diplomat::capi::WeekCalculator* calculator); - - uint32_t icu4x_DateTime_ordinal_month_mv1(const diplomat::capi::DateTime* self); - - void icu4x_DateTime_month_code_mv1(const diplomat::capi::DateTime* self, diplomat::capi::DiplomatWrite* write); - - int32_t icu4x_DateTime_year_in_era_mv1(const diplomat::capi::DateTime* self); - - void icu4x_DateTime_era_mv1(const diplomat::capi::DateTime* self, diplomat::capi::DiplomatWrite* write); - - uint8_t icu4x_DateTime_months_in_year_mv1(const diplomat::capi::DateTime* self); - - uint8_t icu4x_DateTime_days_in_month_mv1(const diplomat::capi::DateTime* self); - - uint16_t icu4x_DateTime_days_in_year_mv1(const diplomat::capi::DateTime* self); - - diplomat::capi::Calendar* icu4x_DateTime_calendar_mv1(const diplomat::capi::DateTime* self); - - - void icu4x_DateTime_destroy_mv1(DateTime* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<DateTime>, CalendarError> DateTime::from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const Calendar& calendar) { - auto result = diplomat::capi::icu4x_DateTime_from_iso_in_calendar_mv1(year, - month, - day, - hour, - minute, - second, - nanosecond, - calendar.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<DateTime>, CalendarError>(diplomat::Ok<std::unique_ptr<DateTime>>(std::unique_ptr<DateTime>(DateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DateTime>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<DateTime>, CalendarError> DateTime::from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const Calendar& calendar) { - auto result = diplomat::capi::icu4x_DateTime_from_codes_in_calendar_mv1(era_code.data(), - era_code.size(), - year, - month_code.data(), - month_code.size(), - day, - hour, - minute, - second, - nanosecond, - calendar.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<DateTime>, CalendarError>(diplomat::Ok<std::unique_ptr<DateTime>>(std::unique_ptr<DateTime>(DateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DateTime>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline std::unique_ptr<DateTime> DateTime::from_date_and_time(const Date& date, const Time& time) { - auto result = diplomat::capi::icu4x_DateTime_from_date_and_time_mv1(date.AsFFI(), - time.AsFFI()); - return std::unique_ptr<DateTime>(DateTime::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<DateTime>, CalendarParseError> DateTime::from_string(std::string_view v) { - auto result = diplomat::capi::icu4x_DateTime_from_string_mv1(v.data(), - v.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<DateTime>, CalendarParseError>(diplomat::Ok<std::unique_ptr<DateTime>>(std::unique_ptr<DateTime>(DateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DateTime>, CalendarParseError>(diplomat::Err<CalendarParseError>(CalendarParseError::FromFFI(result.err))); -} - -inline std::unique_ptr<Date> DateTime::date() const { - auto result = diplomat::capi::icu4x_DateTime_date_mv1(this->AsFFI()); - return std::unique_ptr<Date>(Date::FromFFI(result)); -} - -inline std::unique_ptr<Time> DateTime::time() const { - auto result = diplomat::capi::icu4x_DateTime_time_mv1(this->AsFFI()); - return std::unique_ptr<Time>(Time::FromFFI(result)); -} - -inline std::unique_ptr<IsoDateTime> DateTime::to_iso() const { - auto result = diplomat::capi::icu4x_DateTime_to_iso_mv1(this->AsFFI()); - return std::unique_ptr<IsoDateTime>(IsoDateTime::FromFFI(result)); -} - -inline std::unique_ptr<DateTime> DateTime::to_calendar(const Calendar& calendar) const { - auto result = diplomat::capi::icu4x_DateTime_to_calendar_mv1(this->AsFFI(), - calendar.AsFFI()); - return std::unique_ptr<DateTime>(DateTime::FromFFI(result)); -} - -inline uint8_t DateTime::hour() const { - auto result = diplomat::capi::icu4x_DateTime_hour_mv1(this->AsFFI()); - return result; -} - -inline uint8_t DateTime::minute() const { - auto result = diplomat::capi::icu4x_DateTime_minute_mv1(this->AsFFI()); - return result; -} - -inline uint8_t DateTime::second() const { - auto result = diplomat::capi::icu4x_DateTime_second_mv1(this->AsFFI()); - return result; -} - -inline uint32_t DateTime::nanosecond() const { - auto result = diplomat::capi::icu4x_DateTime_nanosecond_mv1(this->AsFFI()); - return result; -} - -inline uint16_t DateTime::day_of_year() const { - auto result = diplomat::capi::icu4x_DateTime_day_of_year_mv1(this->AsFFI()); - return result; -} - -inline uint32_t DateTime::day_of_month() const { - auto result = diplomat::capi::icu4x_DateTime_day_of_month_mv1(this->AsFFI()); - return result; -} - -inline IsoWeekday DateTime::day_of_week() const { - auto result = diplomat::capi::icu4x_DateTime_day_of_week_mv1(this->AsFFI()); - return IsoWeekday::FromFFI(result); -} - -inline uint32_t DateTime::week_of_month(IsoWeekday first_weekday) const { - auto result = diplomat::capi::icu4x_DateTime_week_of_month_mv1(this->AsFFI(), - first_weekday.AsFFI()); - return result; -} - -inline WeekOf DateTime::week_of_year(const WeekCalculator& calculator) const { - auto result = diplomat::capi::icu4x_DateTime_week_of_year_mv1(this->AsFFI(), - calculator.AsFFI()); - return WeekOf::FromFFI(result); -} - -inline uint32_t DateTime::ordinal_month() const { - auto result = diplomat::capi::icu4x_DateTime_ordinal_month_mv1(this->AsFFI()); - return result; -} - -inline std::string DateTime::month_code() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_DateTime_month_code_mv1(this->AsFFI(), - &write); - return output; -} - -inline int32_t DateTime::year_in_era() const { - auto result = diplomat::capi::icu4x_DateTime_year_in_era_mv1(this->AsFFI()); - return result; -} - -inline std::string DateTime::era() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_DateTime_era_mv1(this->AsFFI(), - &write); - return output; -} - -inline uint8_t DateTime::months_in_year() const { - auto result = diplomat::capi::icu4x_DateTime_months_in_year_mv1(this->AsFFI()); - return result; -} - -inline uint8_t DateTime::days_in_month() const { - auto result = diplomat::capi::icu4x_DateTime_days_in_month_mv1(this->AsFFI()); - return result; -} - -inline uint16_t DateTime::days_in_year() const { - auto result = diplomat::capi::icu4x_DateTime_days_in_year_mv1(this->AsFFI()); - return result; -} - -inline std::unique_ptr<Calendar> DateTime::calendar() const { - auto result = diplomat::capi::icu4x_DateTime_calendar_mv1(this->AsFFI()); - return std::unique_ptr<Calendar>(Calendar::FromFFI(result)); -} - -inline const diplomat::capi::DateTime* DateTime::AsFFI() const { - return reinterpret_cast<const diplomat::capi::DateTime*>(this); -} - -inline diplomat::capi::DateTime* DateTime::AsFFI() { - return reinterpret_cast<diplomat::capi::DateTime*>(this); -} - -inline const DateTime* DateTime::FromFFI(const diplomat::capi::DateTime* ptr) { - return reinterpret_cast<const DateTime*>(ptr); -} - -inline DateTime* DateTime::FromFFI(diplomat::capi::DateTime* ptr) { - return reinterpret_cast<DateTime*>(ptr); -} - -inline void DateTime::operator delete(void* ptr) { - diplomat::capi::icu4x_DateTime_destroy_mv1(reinterpret_cast<diplomat::capi::DateTime*>(ptr)); -} - - -#endif // DateTime_HPP diff --git a/ffi/capi/bindings/cpp/DateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/DateTimeFormatter.d.hpp deleted file mode 100644 index 59503efac73..00000000000 --- a/ffi/capi/bindings/cpp/DateTimeFormatter.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef DateTimeFormatter_D_HPP -#define DateTimeFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct DateTime; } -class DateTime; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Locale; } -class Locale; -class DateLength; -class Error; -class TimeLength; - - -namespace diplomat { -namespace capi { - struct DateTimeFormatter; -} // namespace capi -} // namespace - -class DateTimeFormatter { -public: - - inline static diplomat::result<std::unique_ptr<DateTimeFormatter>, Error> create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length); - - inline diplomat::result<std::string, Error> format_datetime(const DateTime& value) const; - - inline diplomat::result<std::string, Error> format_iso_datetime(const IsoDateTime& value) const; - - inline const diplomat::capi::DateTimeFormatter* AsFFI() const; - inline diplomat::capi::DateTimeFormatter* AsFFI(); - inline static const DateTimeFormatter* FromFFI(const diplomat::capi::DateTimeFormatter* ptr); - inline static DateTimeFormatter* FromFFI(diplomat::capi::DateTimeFormatter* ptr); - inline static void operator delete(void* ptr); -private: - DateTimeFormatter() = delete; - DateTimeFormatter(const DateTimeFormatter&) = delete; - DateTimeFormatter(DateTimeFormatter&&) noexcept = delete; - DateTimeFormatter operator=(const DateTimeFormatter&) = delete; - DateTimeFormatter operator=(DateTimeFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // DateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/DateTimeFormatter.hpp b/ffi/capi/bindings/cpp/DateTimeFormatter.hpp deleted file mode 100644 index 20a7c4a0e5e..00000000000 --- a/ffi/capi/bindings/cpp/DateTimeFormatter.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef DateTimeFormatter_HPP -#define DateTimeFormatter_HPP - -#include "DateTimeFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataProvider.hpp" -#include "DateLength.hpp" -#include "DateTime.hpp" -#include "Error.hpp" -#include "IsoDateTime.hpp" -#include "Locale.hpp" -#include "TimeLength.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_DateTimeFormatter_create_with_lengths_mv1_result {union {diplomat::capi::DateTimeFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_DateTimeFormatter_create_with_lengths_mv1_result; - icu4x_DateTimeFormatter_create_with_lengths_mv1_result icu4x_DateTimeFormatter_create_with_lengths_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength date_length, diplomat::capi::TimeLength time_length); - - typedef struct icu4x_DateTimeFormatter_format_datetime_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_DateTimeFormatter_format_datetime_mv1_result; - icu4x_DateTimeFormatter_format_datetime_mv1_result icu4x_DateTimeFormatter_format_datetime_mv1(const diplomat::capi::DateTimeFormatter* self, const diplomat::capi::DateTime* value, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_DateTimeFormatter_format_iso_datetime_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_DateTimeFormatter_format_iso_datetime_mv1_result; - icu4x_DateTimeFormatter_format_iso_datetime_mv1_result icu4x_DateTimeFormatter_format_iso_datetime_mv1(const diplomat::capi::DateTimeFormatter* self, const diplomat::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); - - - void icu4x_DateTimeFormatter_destroy_mv1(DateTimeFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<DateTimeFormatter>, Error> DateTimeFormatter::create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length) { - auto result = diplomat::capi::icu4x_DateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), - locale.AsFFI(), - date_length.AsFFI(), - time_length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<DateTimeFormatter>, Error>(diplomat::Ok<std::unique_ptr<DateTimeFormatter>>(std::unique_ptr<DateTimeFormatter>(DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DateTimeFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> DateTimeFormatter::format_datetime(const DateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_DateTimeFormatter_format_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> DateTimeFormatter::format_iso_datetime(const IsoDateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_DateTimeFormatter_format_iso_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline const diplomat::capi::DateTimeFormatter* DateTimeFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::DateTimeFormatter*>(this); -} - -inline diplomat::capi::DateTimeFormatter* DateTimeFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::DateTimeFormatter*>(this); -} - -inline const DateTimeFormatter* DateTimeFormatter::FromFFI(const diplomat::capi::DateTimeFormatter* ptr) { - return reinterpret_cast<const DateTimeFormatter*>(ptr); -} - -inline DateTimeFormatter* DateTimeFormatter::FromFFI(diplomat::capi::DateTimeFormatter* ptr) { - return reinterpret_cast<DateTimeFormatter*>(ptr); -} - -inline void DateTimeFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_DateTimeFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::DateTimeFormatter*>(ptr)); -} - - -#endif // DateTimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/DecomposingNormalizer.d.hpp b/ffi/capi/bindings/cpp/DecomposingNormalizer.d.hpp deleted file mode 100644 index b790dd9bcf4..00000000000 --- a/ffi/capi/bindings/cpp/DecomposingNormalizer.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef DecomposingNormalizer_D_HPP -#define DecomposingNormalizer_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct DecomposingNormalizer; -} // namespace capi -} // namespace - -class DecomposingNormalizer { -public: - - inline static diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError> create_nfd(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError> create_nfkd(const DataProvider& provider); - - inline std::string normalize(std::string_view s) const; - - inline bool is_normalized(std::string_view s) const; - - inline bool is_normalized_utf16(std::u16string_view s) const; - - inline size_t is_normalized_up_to(std::string_view s) const; - - inline size_t is_normalized_utf16_up_to(std::u16string_view s) const; - - inline const diplomat::capi::DecomposingNormalizer* AsFFI() const; - inline diplomat::capi::DecomposingNormalizer* AsFFI(); - inline static const DecomposingNormalizer* FromFFI(const diplomat::capi::DecomposingNormalizer* ptr); - inline static DecomposingNormalizer* FromFFI(diplomat::capi::DecomposingNormalizer* ptr); - inline static void operator delete(void* ptr); -private: - DecomposingNormalizer() = delete; - DecomposingNormalizer(const DecomposingNormalizer&) = delete; - DecomposingNormalizer(DecomposingNormalizer&&) noexcept = delete; - DecomposingNormalizer operator=(const DecomposingNormalizer&) = delete; - DecomposingNormalizer operator=(DecomposingNormalizer&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // DecomposingNormalizer_D_HPP diff --git a/ffi/capi/bindings/cpp/DecomposingNormalizer.hpp b/ffi/capi/bindings/cpp/DecomposingNormalizer.hpp deleted file mode 100644 index 0d917970f60..00000000000 --- a/ffi/capi/bindings/cpp/DecomposingNormalizer.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef DecomposingNormalizer_HPP -#define DecomposingNormalizer_HPP - -#include "DecomposingNormalizer.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_DecomposingNormalizer_create_nfd_mv1_result {union {diplomat::capi::DecomposingNormalizer* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfd_mv1_result; - icu4x_DecomposingNormalizer_create_nfd_mv1_result icu4x_DecomposingNormalizer_create_nfd_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_DecomposingNormalizer_create_nfkd_mv1_result {union {diplomat::capi::DecomposingNormalizer* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfkd_mv1_result; - icu4x_DecomposingNormalizer_create_nfkd_mv1_result icu4x_DecomposingNormalizer_create_nfkd_mv1(const diplomat::capi::DataProvider* provider); - - void icu4x_DecomposingNormalizer_normalize_mv1(const diplomat::capi::DecomposingNormalizer* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); - - bool icu4x_DecomposingNormalizer_is_normalized_mv1(const diplomat::capi::DecomposingNormalizer* self, const char* s_data, size_t s_len); - - bool icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(const diplomat::capi::DecomposingNormalizer* self, const char16_t* s_data, size_t s_len); - - size_t icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(const diplomat::capi::DecomposingNormalizer* self, const char* s_data, size_t s_len); - - size_t icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(const diplomat::capi::DecomposingNormalizer* self, const char16_t* s_data, size_t s_len); - - - void icu4x_DecomposingNormalizer_destroy_mv1(DecomposingNormalizer* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError> DecomposingNormalizer::create_nfd(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_DecomposingNormalizer_create_nfd_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError>(diplomat::Ok<std::unique_ptr<DecomposingNormalizer>>(std::unique_ptr<DecomposingNormalizer>(DecomposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError> DecomposingNormalizer::create_nfkd(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_DecomposingNormalizer_create_nfkd_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError>(diplomat::Ok<std::unique_ptr<DecomposingNormalizer>>(std::unique_ptr<DecomposingNormalizer>(DecomposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<DecomposingNormalizer>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::string DecomposingNormalizer::normalize(std::string_view s) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_DecomposingNormalizer_normalize_mv1(this->AsFFI(), - s.data(), - s.size(), - &write); - return output; -} - -inline bool DecomposingNormalizer::is_normalized(std::string_view s) const { - auto result = diplomat::capi::icu4x_DecomposingNormalizer_is_normalized_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline bool DecomposingNormalizer::is_normalized_utf16(std::u16string_view s) const { - auto result = diplomat::capi::icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline size_t DecomposingNormalizer::is_normalized_up_to(std::string_view s) const { - auto result = diplomat::capi::icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline size_t DecomposingNormalizer::is_normalized_utf16_up_to(std::u16string_view s) const { - auto result = diplomat::capi::icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline const diplomat::capi::DecomposingNormalizer* DecomposingNormalizer::AsFFI() const { - return reinterpret_cast<const diplomat::capi::DecomposingNormalizer*>(this); -} - -inline diplomat::capi::DecomposingNormalizer* DecomposingNormalizer::AsFFI() { - return reinterpret_cast<diplomat::capi::DecomposingNormalizer*>(this); -} - -inline const DecomposingNormalizer* DecomposingNormalizer::FromFFI(const diplomat::capi::DecomposingNormalizer* ptr) { - return reinterpret_cast<const DecomposingNormalizer*>(ptr); -} - -inline DecomposingNormalizer* DecomposingNormalizer::FromFFI(diplomat::capi::DecomposingNormalizer* ptr) { - return reinterpret_cast<DecomposingNormalizer*>(ptr); -} - -inline void DecomposingNormalizer::operator delete(void* ptr) { - diplomat::capi::icu4x_DecomposingNormalizer_destroy_mv1(reinterpret_cast<diplomat::capi::DecomposingNormalizer*>(ptr)); -} - - -#endif // DecomposingNormalizer_HPP diff --git a/ffi/capi/bindings/cpp/DisplayNamesFallback.hpp b/ffi/capi/bindings/cpp/DisplayNamesFallback.hpp deleted file mode 100644 index c6ef9df1ebe..00000000000 --- a/ffi/capi/bindings/cpp/DisplayNamesFallback.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef DisplayNamesFallback_HPP -#define DisplayNamesFallback_HPP - -#include "DisplayNamesFallback.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::DisplayNamesFallback DisplayNamesFallback::AsFFI() const { - return static_cast<diplomat::capi::DisplayNamesFallback>(value); -} - -inline DisplayNamesFallback DisplayNamesFallback::FromFFI(diplomat::capi::DisplayNamesFallback c_enum) { - switch (c_enum) { - case diplomat::capi::DisplayNamesFallback_Code: - case diplomat::capi::DisplayNamesFallback_None: - return static_cast<DisplayNamesFallback::Value>(c_enum); - default: - abort(); - } -} -#endif // DisplayNamesFallback_HPP diff --git a/ffi/capi/bindings/cpp/DisplayNamesOptionsV1.d.hpp b/ffi/capi/bindings/cpp/DisplayNamesOptionsV1.d.hpp deleted file mode 100644 index bfe482bf6f4..00000000000 --- a/ffi/capi/bindings/cpp/DisplayNamesOptionsV1.d.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef DisplayNamesOptionsV1_D_HPP -#define DisplayNamesOptionsV1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DisplayNamesFallback.d.hpp" -#include "DisplayNamesStyle.d.hpp" -#include "LanguageDisplay.d.hpp" -#include "diplomat_runtime.hpp" - -class DisplayNamesFallback; -class DisplayNamesStyle; -class LanguageDisplay; - - -namespace diplomat { -namespace capi { - struct DisplayNamesOptionsV1 { - diplomat::capi::DisplayNamesStyle style; - diplomat::capi::DisplayNamesFallback fallback; - diplomat::capi::LanguageDisplay language_display; - }; -} // namespace capi -} // namespace - - -struct DisplayNamesOptionsV1 { - DisplayNamesStyle style; - DisplayNamesFallback fallback; - LanguageDisplay language_display; - - inline diplomat::capi::DisplayNamesOptionsV1 AsFFI() const; - inline static DisplayNamesOptionsV1 FromFFI(diplomat::capi::DisplayNamesOptionsV1 c_struct); -}; - - -#endif // DisplayNamesOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/DisplayNamesOptionsV1.hpp b/ffi/capi/bindings/cpp/DisplayNamesOptionsV1.hpp deleted file mode 100644 index c77ca161c1b..00000000000 --- a/ffi/capi/bindings/cpp/DisplayNamesOptionsV1.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef DisplayNamesOptionsV1_HPP -#define DisplayNamesOptionsV1_HPP - -#include "DisplayNamesOptionsV1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DisplayNamesFallback.hpp" -#include "DisplayNamesStyle.hpp" -#include "LanguageDisplay.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::DisplayNamesOptionsV1 DisplayNamesOptionsV1::AsFFI() const { - return diplomat::capi::DisplayNamesOptionsV1 { - /* .style = */ style.AsFFI(), - /* .fallback = */ fallback.AsFFI(), - /* .language_display = */ language_display.AsFFI(), - }; -} - -inline DisplayNamesOptionsV1 DisplayNamesOptionsV1::FromFFI(diplomat::capi::DisplayNamesOptionsV1 c_struct) { - return DisplayNamesOptionsV1 { - /* .style = */ DisplayNamesStyle::FromFFI(c_struct.style), - /* .fallback = */ DisplayNamesFallback::FromFFI(c_struct.fallback), - /* .language_display = */ LanguageDisplay::FromFFI(c_struct.language_display), - }; -} - - -#endif // DisplayNamesOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/DisplayNamesStyle.hpp b/ffi/capi/bindings/cpp/DisplayNamesStyle.hpp deleted file mode 100644 index f6fa60eaf0c..00000000000 --- a/ffi/capi/bindings/cpp/DisplayNamesStyle.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef DisplayNamesStyle_HPP -#define DisplayNamesStyle_HPP - -#include "DisplayNamesStyle.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::DisplayNamesStyle DisplayNamesStyle::AsFFI() const { - return static_cast<diplomat::capi::DisplayNamesStyle>(value); -} - -inline DisplayNamesStyle DisplayNamesStyle::FromFFI(diplomat::capi::DisplayNamesStyle c_enum) { - switch (c_enum) { - case diplomat::capi::DisplayNamesStyle_Auto: - case diplomat::capi::DisplayNamesStyle_Narrow: - case diplomat::capi::DisplayNamesStyle_Short: - case diplomat::capi::DisplayNamesStyle_Long: - case diplomat::capi::DisplayNamesStyle_Menu: - return static_cast<DisplayNamesStyle::Value>(c_enum); - default: - abort(); - } -} -#endif // DisplayNamesStyle_HPP diff --git a/ffi/capi/bindings/cpp/Error.hpp b/ffi/capi/bindings/cpp/Error.hpp deleted file mode 100644 index 55d5e17c27d..00000000000 --- a/ffi/capi/bindings/cpp/Error.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef Error_HPP -#define Error_HPP - -#include "Error.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::Error Error::AsFFI() const { - return static_cast<diplomat::capi::Error>(value); -} - -inline Error Error::FromFFI(diplomat::capi::Error c_enum) { - switch (c_enum) { - case diplomat::capi::Error_UnknownError: - case diplomat::capi::Error_DataMissingDataMarkerError: - case diplomat::capi::Error_DataMissingLocaleError: - case diplomat::capi::Error_DataNeedsLocaleError: - case diplomat::capi::Error_DataExtraneousLocaleError: - case diplomat::capi::Error_DataFilteredResourceError: - case diplomat::capi::Error_DataMismatchedTypeError: - case diplomat::capi::Error_DataCustomError: - case diplomat::capi::Error_DataIoError: - case diplomat::capi::Error_DataUnavailableBufferFormatError: - case diplomat::capi::Error_PropertyUnexpectedPropertyNameError: - case diplomat::capi::Error_DateTimePatternError: - case diplomat::capi::Error_DateTimeMissingInputFieldError: - case diplomat::capi::Error_DateTimeSkeletonError: - case diplomat::capi::Error_DateTimeUnsupportedFieldError: - case diplomat::capi::Error_DateTimeUnsupportedOptionsError: - case diplomat::capi::Error_DateTimeMissingWeekdaySymbolError: - case diplomat::capi::Error_DateTimeMissingMonthSymbolError: - case diplomat::capi::Error_DateTimeFixedDecimalError: - case diplomat::capi::Error_DateTimeMismatchedCalendarError: - return static_cast<Error::Value>(c_enum); - default: - abort(); - } -} -#endif // Error_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimal.d.hpp b/ffi/capi/bindings/cpp/FixedDecimal.d.hpp deleted file mode 100644 index f7bb205e670..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimal.d.hpp +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef FixedDecimal_D_HPP -#define FixedDecimal_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -struct FixedDecimalLimitError; -class FixedDecimalParseError; -class FixedDecimalRoundingIncrement; -class FixedDecimalRoundingMode; -class FixedDecimalSign; -class FixedDecimalSignDisplay; - - -namespace diplomat { -namespace capi { - struct FixedDecimal; -} // namespace capi -} // namespace - -class FixedDecimal { -public: - - inline static std::unique_ptr<FixedDecimal> from(int32_t v); - - inline static std::unique_ptr<FixedDecimal> from(uint32_t v); - - inline static std::unique_ptr<FixedDecimal> from(int64_t v); - - inline static std::unique_ptr<FixedDecimal> from(uint64_t v); - - inline static diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> from_double_with_integer_precision(double f); - - inline static diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> from_double_with_lower_magnitude(double f, int16_t magnitude); - - inline static diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> from_double_with_significant_digits(double f, uint8_t digits); - - inline static diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> from_double_with_floating_precision(double f); - - inline static diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalParseError> from_string(std::string_view v); - - inline uint8_t digit_at(int16_t magnitude) const; - - inline int16_t magnitude_start() const; - - inline int16_t magnitude_end() const; - - inline int16_t nonzero_magnitude_start() const; - - inline int16_t nonzero_magnitude_end() const; - - inline bool is_zero() const; - - inline void multiply_pow10(int16_t power); - - inline FixedDecimalSign sign() const; - - inline void set_sign(FixedDecimalSign sign); - - inline void apply_sign_display(FixedDecimalSignDisplay sign_display); - - inline void trim_start(); - - inline void trim_end(); - - inline void pad_start(int16_t position); - - inline void pad_end(int16_t position); - - inline void set_max_position(int16_t position); - - inline void round(int16_t position); - - inline void ceil(int16_t position); - - inline void expand(int16_t position); - - inline void floor(int16_t position); - - inline void trunc(int16_t position); - - inline void round_with_mode(int16_t position, FixedDecimalRoundingMode mode); - - inline void round_with_mode_and_increment(int16_t position, FixedDecimalRoundingMode mode, FixedDecimalRoundingIncrement increment); - - inline diplomat::result<std::monostate, std::monostate> concatenate_end(FixedDecimal& other); - - inline std::string to_string() const; - - inline const diplomat::capi::FixedDecimal* AsFFI() const; - inline diplomat::capi::FixedDecimal* AsFFI(); - inline static const FixedDecimal* FromFFI(const diplomat::capi::FixedDecimal* ptr); - inline static FixedDecimal* FromFFI(diplomat::capi::FixedDecimal* ptr); - inline static void operator delete(void* ptr); -private: - FixedDecimal() = delete; - FixedDecimal(const FixedDecimal&) = delete; - FixedDecimal(FixedDecimal&&) noexcept = delete; - FixedDecimal operator=(const FixedDecimal&) = delete; - FixedDecimal operator=(FixedDecimal&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // FixedDecimal_D_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimal.hpp b/ffi/capi/bindings/cpp/FixedDecimal.hpp deleted file mode 100644 index 2ac1400d5cc..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimal.hpp +++ /dev/null @@ -1,299 +0,0 @@ -#ifndef FixedDecimal_HPP -#define FixedDecimal_HPP - -#include "FixedDecimal.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "FixedDecimalLimitError.hpp" -#include "FixedDecimalParseError.hpp" -#include "FixedDecimalRoundingIncrement.hpp" -#include "FixedDecimalRoundingMode.hpp" -#include "FixedDecimalSign.hpp" -#include "FixedDecimalSignDisplay.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::FixedDecimal* icu4x_FixedDecimal_from_int32_mv1(int32_t v); - - diplomat::capi::FixedDecimal* icu4x_FixedDecimal_from_uint32_mv1(uint32_t v); - - diplomat::capi::FixedDecimal* icu4x_FixedDecimal_from_int64_mv1(int64_t v); - - diplomat::capi::FixedDecimal* icu4x_FixedDecimal_from_uint64_mv1(uint64_t v); - - typedef struct icu4x_FixedDecimal_from_double_with_integer_precision_mv1_result {union {diplomat::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_integer_precision_mv1_result; - icu4x_FixedDecimal_from_double_with_integer_precision_mv1_result icu4x_FixedDecimal_from_double_with_integer_precision_mv1(double f); - - typedef struct icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1_result {union {diplomat::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1_result; - icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1_result icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1(double f, int16_t magnitude); - - typedef struct icu4x_FixedDecimal_from_double_with_significant_digits_mv1_result {union {diplomat::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_significant_digits_mv1_result; - icu4x_FixedDecimal_from_double_with_significant_digits_mv1_result icu4x_FixedDecimal_from_double_with_significant_digits_mv1(double f, uint8_t digits); - - typedef struct icu4x_FixedDecimal_from_double_with_floating_precision_mv1_result {union {diplomat::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_floating_precision_mv1_result; - icu4x_FixedDecimal_from_double_with_floating_precision_mv1_result icu4x_FixedDecimal_from_double_with_floating_precision_mv1(double f); - - typedef struct icu4x_FixedDecimal_from_string_mv1_result {union {diplomat::capi::FixedDecimal* ok; diplomat::capi::FixedDecimalParseError err;}; bool is_ok;} icu4x_FixedDecimal_from_string_mv1_result; - icu4x_FixedDecimal_from_string_mv1_result icu4x_FixedDecimal_from_string_mv1(const char* v_data, size_t v_len); - - uint8_t icu4x_FixedDecimal_digit_at_mv1(const diplomat::capi::FixedDecimal* self, int16_t magnitude); - - int16_t icu4x_FixedDecimal_magnitude_start_mv1(const diplomat::capi::FixedDecimal* self); - - int16_t icu4x_FixedDecimal_magnitude_end_mv1(const diplomat::capi::FixedDecimal* self); - - int16_t icu4x_FixedDecimal_nonzero_magnitude_start_mv1(const diplomat::capi::FixedDecimal* self); - - int16_t icu4x_FixedDecimal_nonzero_magnitude_end_mv1(const diplomat::capi::FixedDecimal* self); - - bool icu4x_FixedDecimal_is_zero_mv1(const diplomat::capi::FixedDecimal* self); - - void icu4x_FixedDecimal_multiply_pow10_mv1(diplomat::capi::FixedDecimal* self, int16_t power); - - diplomat::capi::FixedDecimalSign icu4x_FixedDecimal_sign_mv1(const diplomat::capi::FixedDecimal* self); - - void icu4x_FixedDecimal_set_sign_mv1(diplomat::capi::FixedDecimal* self, diplomat::capi::FixedDecimalSign sign); - - void icu4x_FixedDecimal_apply_sign_display_mv1(diplomat::capi::FixedDecimal* self, diplomat::capi::FixedDecimalSignDisplay sign_display); - - void icu4x_FixedDecimal_trim_start_mv1(diplomat::capi::FixedDecimal* self); - - void icu4x_FixedDecimal_trim_end_mv1(diplomat::capi::FixedDecimal* self); - - void icu4x_FixedDecimal_pad_start_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_pad_end_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_set_max_position_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_round_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_ceil_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_expand_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_floor_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_trunc_mv1(diplomat::capi::FixedDecimal* self, int16_t position); - - void icu4x_FixedDecimal_round_with_mode_mv1(diplomat::capi::FixedDecimal* self, int16_t position, diplomat::capi::FixedDecimalRoundingMode mode); - - void icu4x_FixedDecimal_round_with_mode_and_increment_mv1(diplomat::capi::FixedDecimal* self, int16_t position, diplomat::capi::FixedDecimalRoundingMode mode, diplomat::capi::FixedDecimalRoundingIncrement increment); - - typedef struct icu4x_FixedDecimal_concatenate_end_mv1_result { bool is_ok;} icu4x_FixedDecimal_concatenate_end_mv1_result; - icu4x_FixedDecimal_concatenate_end_mv1_result icu4x_FixedDecimal_concatenate_end_mv1(diplomat::capi::FixedDecimal* self, diplomat::capi::FixedDecimal* other); - - void icu4x_FixedDecimal_to_string_mv1(const diplomat::capi::FixedDecimal* self, diplomat::capi::DiplomatWrite* write); - - - void icu4x_FixedDecimal_destroy_mv1(FixedDecimal* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline std::unique_ptr<FixedDecimal> FixedDecimal::from(int32_t v) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_int32_mv1(v); - return std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result)); -} - -inline std::unique_ptr<FixedDecimal> FixedDecimal::from(uint32_t v) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_uint32_mv1(v); - return std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result)); -} - -inline std::unique_ptr<FixedDecimal> FixedDecimal::from(int64_t v) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_int64_mv1(v); - return std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result)); -} - -inline std::unique_ptr<FixedDecimal> FixedDecimal::from(uint64_t v) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_uint64_mv1(v); - return std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> FixedDecimal::from_double_with_integer_precision(double f) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_double_with_integer_precision_mv1(f); - return result.is_ok ? diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<FixedDecimal>>(std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Err<FixedDecimalLimitError>(FixedDecimalLimitError {})); -} - -inline diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> FixedDecimal::from_double_with_lower_magnitude(double f, int16_t magnitude) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1(f, - magnitude); - return result.is_ok ? diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<FixedDecimal>>(std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Err<FixedDecimalLimitError>(FixedDecimalLimitError {})); -} - -inline diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> FixedDecimal::from_double_with_significant_digits(double f, uint8_t digits) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_double_with_significant_digits_mv1(f, - digits); - return result.is_ok ? diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<FixedDecimal>>(std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Err<FixedDecimalLimitError>(FixedDecimalLimitError {})); -} - -inline diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError> FixedDecimal::from_double_with_floating_precision(double f) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_double_with_floating_precision_mv1(f); - return result.is_ok ? diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<FixedDecimal>>(std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalLimitError>(diplomat::Err<FixedDecimalLimitError>(FixedDecimalLimitError {})); -} - -inline diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalParseError> FixedDecimal::from_string(std::string_view v) { - auto result = diplomat::capi::icu4x_FixedDecimal_from_string_mv1(v.data(), - v.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalParseError>(diplomat::Ok<std::unique_ptr<FixedDecimal>>(std::unique_ptr<FixedDecimal>(FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<FixedDecimal>, FixedDecimalParseError>(diplomat::Err<FixedDecimalParseError>(FixedDecimalParseError::FromFFI(result.err))); -} - -inline uint8_t FixedDecimal::digit_at(int16_t magnitude) const { - auto result = diplomat::capi::icu4x_FixedDecimal_digit_at_mv1(this->AsFFI(), - magnitude); - return result; -} - -inline int16_t FixedDecimal::magnitude_start() const { - auto result = diplomat::capi::icu4x_FixedDecimal_magnitude_start_mv1(this->AsFFI()); - return result; -} - -inline int16_t FixedDecimal::magnitude_end() const { - auto result = diplomat::capi::icu4x_FixedDecimal_magnitude_end_mv1(this->AsFFI()); - return result; -} - -inline int16_t FixedDecimal::nonzero_magnitude_start() const { - auto result = diplomat::capi::icu4x_FixedDecimal_nonzero_magnitude_start_mv1(this->AsFFI()); - return result; -} - -inline int16_t FixedDecimal::nonzero_magnitude_end() const { - auto result = diplomat::capi::icu4x_FixedDecimal_nonzero_magnitude_end_mv1(this->AsFFI()); - return result; -} - -inline bool FixedDecimal::is_zero() const { - auto result = diplomat::capi::icu4x_FixedDecimal_is_zero_mv1(this->AsFFI()); - return result; -} - -inline void FixedDecimal::multiply_pow10(int16_t power) { - diplomat::capi::icu4x_FixedDecimal_multiply_pow10_mv1(this->AsFFI(), - power); -} - -inline FixedDecimalSign FixedDecimal::sign() const { - auto result = diplomat::capi::icu4x_FixedDecimal_sign_mv1(this->AsFFI()); - return FixedDecimalSign::FromFFI(result); -} - -inline void FixedDecimal::set_sign(FixedDecimalSign sign) { - diplomat::capi::icu4x_FixedDecimal_set_sign_mv1(this->AsFFI(), - sign.AsFFI()); -} - -inline void FixedDecimal::apply_sign_display(FixedDecimalSignDisplay sign_display) { - diplomat::capi::icu4x_FixedDecimal_apply_sign_display_mv1(this->AsFFI(), - sign_display.AsFFI()); -} - -inline void FixedDecimal::trim_start() { - diplomat::capi::icu4x_FixedDecimal_trim_start_mv1(this->AsFFI()); -} - -inline void FixedDecimal::trim_end() { - diplomat::capi::icu4x_FixedDecimal_trim_end_mv1(this->AsFFI()); -} - -inline void FixedDecimal::pad_start(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_pad_start_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::pad_end(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_pad_end_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::set_max_position(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_set_max_position_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::round(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_round_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::ceil(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_ceil_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::expand(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_expand_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::floor(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_floor_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::trunc(int16_t position) { - diplomat::capi::icu4x_FixedDecimal_trunc_mv1(this->AsFFI(), - position); -} - -inline void FixedDecimal::round_with_mode(int16_t position, FixedDecimalRoundingMode mode) { - diplomat::capi::icu4x_FixedDecimal_round_with_mode_mv1(this->AsFFI(), - position, - mode.AsFFI()); -} - -inline void FixedDecimal::round_with_mode_and_increment(int16_t position, FixedDecimalRoundingMode mode, FixedDecimalRoundingIncrement increment) { - diplomat::capi::icu4x_FixedDecimal_round_with_mode_and_increment_mv1(this->AsFFI(), - position, - mode.AsFFI(), - increment.AsFFI()); -} - -inline diplomat::result<std::monostate, std::monostate> FixedDecimal::concatenate_end(FixedDecimal& other) { - auto result = diplomat::capi::icu4x_FixedDecimal_concatenate_end_mv1(this->AsFFI(), - other.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, std::monostate>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, std::monostate>(diplomat::Err<std::monostate>()); -} - -inline std::string FixedDecimal::to_string() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_FixedDecimal_to_string_mv1(this->AsFFI(), - &write); - return output; -} - -inline const diplomat::capi::FixedDecimal* FixedDecimal::AsFFI() const { - return reinterpret_cast<const diplomat::capi::FixedDecimal*>(this); -} - -inline diplomat::capi::FixedDecimal* FixedDecimal::AsFFI() { - return reinterpret_cast<diplomat::capi::FixedDecimal*>(this); -} - -inline const FixedDecimal* FixedDecimal::FromFFI(const diplomat::capi::FixedDecimal* ptr) { - return reinterpret_cast<const FixedDecimal*>(ptr); -} - -inline FixedDecimal* FixedDecimal::FromFFI(diplomat::capi::FixedDecimal* ptr) { - return reinterpret_cast<FixedDecimal*>(ptr); -} - -inline void FixedDecimal::operator delete(void* ptr) { - diplomat::capi::icu4x_FixedDecimal_destroy_mv1(reinterpret_cast<diplomat::capi::FixedDecimal*>(ptr)); -} - - -#endif // FixedDecimal_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalFormatter.d.hpp b/ffi/capi/bindings/cpp/FixedDecimalFormatter.d.hpp deleted file mode 100644 index 626d442c8ba..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalFormatter.d.hpp +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef FixedDecimalFormatter_D_HPP -#define FixedDecimalFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct FixedDecimal; } -class FixedDecimal; -namespace diplomat::capi { struct Locale; } -class Locale; -class DataError; -class FixedDecimalGroupingStrategy; - - -namespace diplomat { -namespace capi { - struct FixedDecimalFormatter; -} // namespace capi -} // namespace - -class FixedDecimalFormatter { -public: - - inline static diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError> create_with_grouping_strategy(const DataProvider& provider, const Locale& locale, FixedDecimalGroupingStrategy grouping_strategy); - - inline static diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError> create_with_manual_data(std::string_view plus_sign_prefix, std::string_view plus_sign_suffix, std::string_view minus_sign_prefix, std::string_view minus_sign_suffix, std::string_view decimal_separator, std::string_view grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, diplomat::span<const char32_t> digits, FixedDecimalGroupingStrategy grouping_strategy); - - inline std::string format(const FixedDecimal& value) const; - - inline const diplomat::capi::FixedDecimalFormatter* AsFFI() const; - inline diplomat::capi::FixedDecimalFormatter* AsFFI(); - inline static const FixedDecimalFormatter* FromFFI(const diplomat::capi::FixedDecimalFormatter* ptr); - inline static FixedDecimalFormatter* FromFFI(diplomat::capi::FixedDecimalFormatter* ptr); - inline static void operator delete(void* ptr); -private: - FixedDecimalFormatter() = delete; - FixedDecimalFormatter(const FixedDecimalFormatter&) = delete; - FixedDecimalFormatter(FixedDecimalFormatter&&) noexcept = delete; - FixedDecimalFormatter operator=(const FixedDecimalFormatter&) = delete; - FixedDecimalFormatter operator=(FixedDecimalFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // FixedDecimalFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalFormatter.hpp b/ffi/capi/bindings/cpp/FixedDecimalFormatter.hpp deleted file mode 100644 index d446f9c476a..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalFormatter.hpp +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef FixedDecimalFormatter_HPP -#define FixedDecimalFormatter_HPP - -#include "FixedDecimalFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "FixedDecimal.hpp" -#include "FixedDecimalGroupingStrategy.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1_result {union {diplomat::capi::FixedDecimalFormatter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1_result; - icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1_result icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::FixedDecimalGroupingStrategy grouping_strategy); - - typedef struct icu4x_FixedDecimalFormatter_create_with_manual_data_mv1_result {union {diplomat::capi::FixedDecimalFormatter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_FixedDecimalFormatter_create_with_manual_data_mv1_result; - icu4x_FixedDecimalFormatter_create_with_manual_data_mv1_result icu4x_FixedDecimalFormatter_create_with_manual_data_mv1(const char* plus_sign_prefix_data, size_t plus_sign_prefix_len, const char* plus_sign_suffix_data, size_t plus_sign_suffix_len, const char* minus_sign_prefix_data, size_t minus_sign_prefix_len, const char* minus_sign_suffix_data, size_t minus_sign_suffix_len, const char* decimal_separator_data, size_t decimal_separator_len, const char* grouping_separator_data, size_t grouping_separator_len, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, const char32_t* digits_data, size_t digits_len, diplomat::capi::FixedDecimalGroupingStrategy grouping_strategy); - - void icu4x_FixedDecimalFormatter_format_mv1(const diplomat::capi::FixedDecimalFormatter* self, const diplomat::capi::FixedDecimal* value, diplomat::capi::DiplomatWrite* write); - - - void icu4x_FixedDecimalFormatter_destroy_mv1(FixedDecimalFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError> FixedDecimalFormatter::create_with_grouping_strategy(const DataProvider& provider, const Locale& locale, FixedDecimalGroupingStrategy grouping_strategy) { - auto result = diplomat::capi::icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1(provider.AsFFI(), - locale.AsFFI(), - grouping_strategy.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError>(diplomat::Ok<std::unique_ptr<FixedDecimalFormatter>>(std::unique_ptr<FixedDecimalFormatter>(FixedDecimalFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError> FixedDecimalFormatter::create_with_manual_data(std::string_view plus_sign_prefix, std::string_view plus_sign_suffix, std::string_view minus_sign_prefix, std::string_view minus_sign_suffix, std::string_view decimal_separator, std::string_view grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, diplomat::span<const char32_t> digits, FixedDecimalGroupingStrategy grouping_strategy) { - auto result = diplomat::capi::icu4x_FixedDecimalFormatter_create_with_manual_data_mv1(plus_sign_prefix.data(), - plus_sign_prefix.size(), - plus_sign_suffix.data(), - plus_sign_suffix.size(), - minus_sign_prefix.data(), - minus_sign_prefix.size(), - minus_sign_suffix.data(), - minus_sign_suffix.size(), - decimal_separator.data(), - decimal_separator.size(), - grouping_separator.data(), - grouping_separator.size(), - primary_group_size, - secondary_group_size, - min_group_size, - digits.data(), - digits.size(), - grouping_strategy.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError>(diplomat::Ok<std::unique_ptr<FixedDecimalFormatter>>(std::unique_ptr<FixedDecimalFormatter>(FixedDecimalFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<FixedDecimalFormatter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::string FixedDecimalFormatter::format(const FixedDecimal& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_FixedDecimalFormatter_format_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline const diplomat::capi::FixedDecimalFormatter* FixedDecimalFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::FixedDecimalFormatter*>(this); -} - -inline diplomat::capi::FixedDecimalFormatter* FixedDecimalFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::FixedDecimalFormatter*>(this); -} - -inline const FixedDecimalFormatter* FixedDecimalFormatter::FromFFI(const diplomat::capi::FixedDecimalFormatter* ptr) { - return reinterpret_cast<const FixedDecimalFormatter*>(ptr); -} - -inline FixedDecimalFormatter* FixedDecimalFormatter::FromFFI(diplomat::capi::FixedDecimalFormatter* ptr) { - return reinterpret_cast<FixedDecimalFormatter*>(ptr); -} - -inline void FixedDecimalFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_FixedDecimalFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::FixedDecimalFormatter*>(ptr)); -} - - -#endif // FixedDecimalFormatter_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalGroupingStrategy.hpp b/ffi/capi/bindings/cpp/FixedDecimalGroupingStrategy.hpp deleted file mode 100644 index 950105b8310..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalGroupingStrategy.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef FixedDecimalGroupingStrategy_HPP -#define FixedDecimalGroupingStrategy_HPP - -#include "FixedDecimalGroupingStrategy.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::FixedDecimalGroupingStrategy FixedDecimalGroupingStrategy::AsFFI() const { - return static_cast<diplomat::capi::FixedDecimalGroupingStrategy>(value); -} - -inline FixedDecimalGroupingStrategy FixedDecimalGroupingStrategy::FromFFI(diplomat::capi::FixedDecimalGroupingStrategy c_enum) { - switch (c_enum) { - case diplomat::capi::FixedDecimalGroupingStrategy_Auto: - case diplomat::capi::FixedDecimalGroupingStrategy_Never: - case diplomat::capi::FixedDecimalGroupingStrategy_Always: - case diplomat::capi::FixedDecimalGroupingStrategy_Min2: - return static_cast<FixedDecimalGroupingStrategy::Value>(c_enum); - default: - abort(); - } -} -#endif // FixedDecimalGroupingStrategy_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalParseError.hpp b/ffi/capi/bindings/cpp/FixedDecimalParseError.hpp deleted file mode 100644 index 4db0bf61977..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalParseError.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef FixedDecimalParseError_HPP -#define FixedDecimalParseError_HPP - -#include "FixedDecimalParseError.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::FixedDecimalParseError FixedDecimalParseError::AsFFI() const { - return static_cast<diplomat::capi::FixedDecimalParseError>(value); -} - -inline FixedDecimalParseError FixedDecimalParseError::FromFFI(diplomat::capi::FixedDecimalParseError c_enum) { - switch (c_enum) { - case diplomat::capi::FixedDecimalParseError_Unknown: - case diplomat::capi::FixedDecimalParseError_Limit: - case diplomat::capi::FixedDecimalParseError_Syntax: - return static_cast<FixedDecimalParseError::Value>(c_enum); - default: - abort(); - } -} -#endif // FixedDecimalParseError_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalRoundingIncrement.hpp b/ffi/capi/bindings/cpp/FixedDecimalRoundingIncrement.hpp deleted file mode 100644 index e10039f6b08..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalRoundingIncrement.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef FixedDecimalRoundingIncrement_HPP -#define FixedDecimalRoundingIncrement_HPP - -#include "FixedDecimalRoundingIncrement.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::FixedDecimalRoundingIncrement FixedDecimalRoundingIncrement::AsFFI() const { - return static_cast<diplomat::capi::FixedDecimalRoundingIncrement>(value); -} - -inline FixedDecimalRoundingIncrement FixedDecimalRoundingIncrement::FromFFI(diplomat::capi::FixedDecimalRoundingIncrement c_enum) { - switch (c_enum) { - case diplomat::capi::FixedDecimalRoundingIncrement_MultiplesOf1: - case diplomat::capi::FixedDecimalRoundingIncrement_MultiplesOf2: - case diplomat::capi::FixedDecimalRoundingIncrement_MultiplesOf5: - case diplomat::capi::FixedDecimalRoundingIncrement_MultiplesOf25: - return static_cast<FixedDecimalRoundingIncrement::Value>(c_enum); - default: - abort(); - } -} -#endif // FixedDecimalRoundingIncrement_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalRoundingMode.hpp b/ffi/capi/bindings/cpp/FixedDecimalRoundingMode.hpp deleted file mode 100644 index 8e21cad85a7..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalRoundingMode.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef FixedDecimalRoundingMode_HPP -#define FixedDecimalRoundingMode_HPP - -#include "FixedDecimalRoundingMode.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::FixedDecimalRoundingMode FixedDecimalRoundingMode::AsFFI() const { - return static_cast<diplomat::capi::FixedDecimalRoundingMode>(value); -} - -inline FixedDecimalRoundingMode FixedDecimalRoundingMode::FromFFI(diplomat::capi::FixedDecimalRoundingMode c_enum) { - switch (c_enum) { - case diplomat::capi::FixedDecimalRoundingMode_Ceil: - case diplomat::capi::FixedDecimalRoundingMode_Expand: - case diplomat::capi::FixedDecimalRoundingMode_Floor: - case diplomat::capi::FixedDecimalRoundingMode_Trunc: - case diplomat::capi::FixedDecimalRoundingMode_HalfCeil: - case diplomat::capi::FixedDecimalRoundingMode_HalfExpand: - case diplomat::capi::FixedDecimalRoundingMode_HalfFloor: - case diplomat::capi::FixedDecimalRoundingMode_HalfTrunc: - case diplomat::capi::FixedDecimalRoundingMode_HalfEven: - return static_cast<FixedDecimalRoundingMode::Value>(c_enum); - default: - abort(); - } -} -#endif // FixedDecimalRoundingMode_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalSign.hpp b/ffi/capi/bindings/cpp/FixedDecimalSign.hpp deleted file mode 100644 index 6c75f4b094d..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalSign.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef FixedDecimalSign_HPP -#define FixedDecimalSign_HPP - -#include "FixedDecimalSign.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::FixedDecimalSign FixedDecimalSign::AsFFI() const { - return static_cast<diplomat::capi::FixedDecimalSign>(value); -} - -inline FixedDecimalSign FixedDecimalSign::FromFFI(diplomat::capi::FixedDecimalSign c_enum) { - switch (c_enum) { - case diplomat::capi::FixedDecimalSign_None: - case diplomat::capi::FixedDecimalSign_Negative: - case diplomat::capi::FixedDecimalSign_Positive: - return static_cast<FixedDecimalSign::Value>(c_enum); - default: - abort(); - } -} -#endif // FixedDecimalSign_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalSignDisplay.hpp b/ffi/capi/bindings/cpp/FixedDecimalSignDisplay.hpp deleted file mode 100644 index ad768096412..00000000000 --- a/ffi/capi/bindings/cpp/FixedDecimalSignDisplay.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef FixedDecimalSignDisplay_HPP -#define FixedDecimalSignDisplay_HPP - -#include "FixedDecimalSignDisplay.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::FixedDecimalSignDisplay FixedDecimalSignDisplay::AsFFI() const { - return static_cast<diplomat::capi::FixedDecimalSignDisplay>(value); -} - -inline FixedDecimalSignDisplay FixedDecimalSignDisplay::FromFFI(diplomat::capi::FixedDecimalSignDisplay c_enum) { - switch (c_enum) { - case diplomat::capi::FixedDecimalSignDisplay_Auto: - case diplomat::capi::FixedDecimalSignDisplay_Never: - case diplomat::capi::FixedDecimalSignDisplay_Always: - case diplomat::capi::FixedDecimalSignDisplay_ExceptZero: - case diplomat::capi::FixedDecimalSignDisplay_Negative: - return static_cast<FixedDecimalSignDisplay::Value>(c_enum); - default: - abort(); - } -} -#endif // FixedDecimalSignDisplay_HPP diff --git a/ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.d.hpp b/ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.d.hpp deleted file mode 100644 index 40ab8a76195..00000000000 --- a/ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.d.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef GeneralCategoryNameToMaskMapper_D_HPP -#define GeneralCategoryNameToMaskMapper_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct GeneralCategoryNameToMaskMapper; -} // namespace capi -} // namespace - -class GeneralCategoryNameToMaskMapper { -public: - - inline uint32_t get_strict(std::string_view name) const; - - inline uint32_t get_loose(std::string_view name) const; - - inline static diplomat::result<std::unique_ptr<GeneralCategoryNameToMaskMapper>, DataError> load(const DataProvider& provider); - - inline const diplomat::capi::GeneralCategoryNameToMaskMapper* AsFFI() const; - inline diplomat::capi::GeneralCategoryNameToMaskMapper* AsFFI(); - inline static const GeneralCategoryNameToMaskMapper* FromFFI(const diplomat::capi::GeneralCategoryNameToMaskMapper* ptr); - inline static GeneralCategoryNameToMaskMapper* FromFFI(diplomat::capi::GeneralCategoryNameToMaskMapper* ptr); - inline static void operator delete(void* ptr); -private: - GeneralCategoryNameToMaskMapper() = delete; - GeneralCategoryNameToMaskMapper(const GeneralCategoryNameToMaskMapper&) = delete; - GeneralCategoryNameToMaskMapper(GeneralCategoryNameToMaskMapper&&) noexcept = delete; - GeneralCategoryNameToMaskMapper operator=(const GeneralCategoryNameToMaskMapper&) = delete; - GeneralCategoryNameToMaskMapper operator=(GeneralCategoryNameToMaskMapper&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GeneralCategoryNameToMaskMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.hpp b/ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.hpp deleted file mode 100644 index 9ab2ca361b3..00000000000 --- a/ffi/capi/bindings/cpp/GeneralCategoryNameToMaskMapper.hpp +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef GeneralCategoryNameToMaskMapper_HPP -#define GeneralCategoryNameToMaskMapper_HPP - -#include "GeneralCategoryNameToMaskMapper.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - uint32_t icu4x_GeneralCategoryNameToMaskMapper_get_strict_mv1(const diplomat::capi::GeneralCategoryNameToMaskMapper* self, const char* name_data, size_t name_len); - - uint32_t icu4x_GeneralCategoryNameToMaskMapper_get_loose_mv1(const diplomat::capi::GeneralCategoryNameToMaskMapper* self, const char* name_data, size_t name_len); - - typedef struct icu4x_GeneralCategoryNameToMaskMapper_load_mv1_result {union {diplomat::capi::GeneralCategoryNameToMaskMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_GeneralCategoryNameToMaskMapper_load_mv1_result; - icu4x_GeneralCategoryNameToMaskMapper_load_mv1_result icu4x_GeneralCategoryNameToMaskMapper_load_mv1(const diplomat::capi::DataProvider* provider); - - - void icu4x_GeneralCategoryNameToMaskMapper_destroy_mv1(GeneralCategoryNameToMaskMapper* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline uint32_t GeneralCategoryNameToMaskMapper::get_strict(std::string_view name) const { - auto result = diplomat::capi::icu4x_GeneralCategoryNameToMaskMapper_get_strict_mv1(this->AsFFI(), - name.data(), - name.size()); - return result; -} - -inline uint32_t GeneralCategoryNameToMaskMapper::get_loose(std::string_view name) const { - auto result = diplomat::capi::icu4x_GeneralCategoryNameToMaskMapper_get_loose_mv1(this->AsFFI(), - name.data(), - name.size()); - return result; -} - -inline diplomat::result<std::unique_ptr<GeneralCategoryNameToMaskMapper>, DataError> GeneralCategoryNameToMaskMapper::load(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_GeneralCategoryNameToMaskMapper_load_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<GeneralCategoryNameToMaskMapper>, DataError>(diplomat::Ok<std::unique_ptr<GeneralCategoryNameToMaskMapper>>(std::unique_ptr<GeneralCategoryNameToMaskMapper>(GeneralCategoryNameToMaskMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<GeneralCategoryNameToMaskMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline const diplomat::capi::GeneralCategoryNameToMaskMapper* GeneralCategoryNameToMaskMapper::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GeneralCategoryNameToMaskMapper*>(this); -} - -inline diplomat::capi::GeneralCategoryNameToMaskMapper* GeneralCategoryNameToMaskMapper::AsFFI() { - return reinterpret_cast<diplomat::capi::GeneralCategoryNameToMaskMapper*>(this); -} - -inline const GeneralCategoryNameToMaskMapper* GeneralCategoryNameToMaskMapper::FromFFI(const diplomat::capi::GeneralCategoryNameToMaskMapper* ptr) { - return reinterpret_cast<const GeneralCategoryNameToMaskMapper*>(ptr); -} - -inline GeneralCategoryNameToMaskMapper* GeneralCategoryNameToMaskMapper::FromFFI(diplomat::capi::GeneralCategoryNameToMaskMapper* ptr) { - return reinterpret_cast<GeneralCategoryNameToMaskMapper*>(ptr); -} - -inline void GeneralCategoryNameToMaskMapper::operator delete(void* ptr) { - diplomat::capi::icu4x_GeneralCategoryNameToMaskMapper_destroy_mv1(reinterpret_cast<diplomat::capi::GeneralCategoryNameToMaskMapper*>(ptr)); -} - - -#endif // GeneralCategoryNameToMaskMapper_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.d.hpp deleted file mode 100644 index 330ec086da0..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef GraphemeClusterBreakIteratorLatin1_D_HPP -#define GraphemeClusterBreakIteratorLatin1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct GraphemeClusterBreakIteratorLatin1; -} // namespace capi -} // namespace - -class GraphemeClusterBreakIteratorLatin1 { -public: - - inline int32_t next(); - - inline const diplomat::capi::GraphemeClusterBreakIteratorLatin1* AsFFI() const; - inline diplomat::capi::GraphemeClusterBreakIteratorLatin1* AsFFI(); - inline static const GraphemeClusterBreakIteratorLatin1* FromFFI(const diplomat::capi::GraphemeClusterBreakIteratorLatin1* ptr); - inline static GraphemeClusterBreakIteratorLatin1* FromFFI(diplomat::capi::GraphemeClusterBreakIteratorLatin1* ptr); - inline static void operator delete(void* ptr); -private: - GraphemeClusterBreakIteratorLatin1() = delete; - GraphemeClusterBreakIteratorLatin1(const GraphemeClusterBreakIteratorLatin1&) = delete; - GraphemeClusterBreakIteratorLatin1(GraphemeClusterBreakIteratorLatin1&&) noexcept = delete; - GraphemeClusterBreakIteratorLatin1 operator=(const GraphemeClusterBreakIteratorLatin1&) = delete; - GraphemeClusterBreakIteratorLatin1 operator=(GraphemeClusterBreakIteratorLatin1&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GraphemeClusterBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.hpp deleted file mode 100644 index 97067248785..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorLatin1.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef GraphemeClusterBreakIteratorLatin1_HPP -#define GraphemeClusterBreakIteratorLatin1_HPP - -#include "GraphemeClusterBreakIteratorLatin1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(diplomat::capi::GraphemeClusterBreakIteratorLatin1* self); - - - void icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(GraphemeClusterBreakIteratorLatin1* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t GraphemeClusterBreakIteratorLatin1::next() { - auto result = diplomat::capi::icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::GraphemeClusterBreakIteratorLatin1* GraphemeClusterBreakIteratorLatin1::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GraphemeClusterBreakIteratorLatin1*>(this); -} - -inline diplomat::capi::GraphemeClusterBreakIteratorLatin1* GraphemeClusterBreakIteratorLatin1::AsFFI() { - return reinterpret_cast<diplomat::capi::GraphemeClusterBreakIteratorLatin1*>(this); -} - -inline const GraphemeClusterBreakIteratorLatin1* GraphemeClusterBreakIteratorLatin1::FromFFI(const diplomat::capi::GraphemeClusterBreakIteratorLatin1* ptr) { - return reinterpret_cast<const GraphemeClusterBreakIteratorLatin1*>(ptr); -} - -inline GraphemeClusterBreakIteratorLatin1* GraphemeClusterBreakIteratorLatin1::FromFFI(diplomat::capi::GraphemeClusterBreakIteratorLatin1* ptr) { - return reinterpret_cast<GraphemeClusterBreakIteratorLatin1*>(ptr); -} - -inline void GraphemeClusterBreakIteratorLatin1::operator delete(void* ptr) { - diplomat::capi::icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(reinterpret_cast<diplomat::capi::GraphemeClusterBreakIteratorLatin1*>(ptr)); -} - - -#endif // GraphemeClusterBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.d.hpp deleted file mode 100644 index 0c4fc534cec..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef GraphemeClusterBreakIteratorUtf16_D_HPP -#define GraphemeClusterBreakIteratorUtf16_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct GraphemeClusterBreakIteratorUtf16; -} // namespace capi -} // namespace - -class GraphemeClusterBreakIteratorUtf16 { -public: - - inline int32_t next(); - - inline const diplomat::capi::GraphemeClusterBreakIteratorUtf16* AsFFI() const; - inline diplomat::capi::GraphemeClusterBreakIteratorUtf16* AsFFI(); - inline static const GraphemeClusterBreakIteratorUtf16* FromFFI(const diplomat::capi::GraphemeClusterBreakIteratorUtf16* ptr); - inline static GraphemeClusterBreakIteratorUtf16* FromFFI(diplomat::capi::GraphemeClusterBreakIteratorUtf16* ptr); - inline static void operator delete(void* ptr); -private: - GraphemeClusterBreakIteratorUtf16() = delete; - GraphemeClusterBreakIteratorUtf16(const GraphemeClusterBreakIteratorUtf16&) = delete; - GraphemeClusterBreakIteratorUtf16(GraphemeClusterBreakIteratorUtf16&&) noexcept = delete; - GraphemeClusterBreakIteratorUtf16 operator=(const GraphemeClusterBreakIteratorUtf16&) = delete; - GraphemeClusterBreakIteratorUtf16 operator=(GraphemeClusterBreakIteratorUtf16&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GraphemeClusterBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.hpp deleted file mode 100644 index 828c8d61f08..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf16.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef GraphemeClusterBreakIteratorUtf16_HPP -#define GraphemeClusterBreakIteratorUtf16_HPP - -#include "GraphemeClusterBreakIteratorUtf16.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(diplomat::capi::GraphemeClusterBreakIteratorUtf16* self); - - - void icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(GraphemeClusterBreakIteratorUtf16* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t GraphemeClusterBreakIteratorUtf16::next() { - auto result = diplomat::capi::icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::GraphemeClusterBreakIteratorUtf16* GraphemeClusterBreakIteratorUtf16::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GraphemeClusterBreakIteratorUtf16*>(this); -} - -inline diplomat::capi::GraphemeClusterBreakIteratorUtf16* GraphemeClusterBreakIteratorUtf16::AsFFI() { - return reinterpret_cast<diplomat::capi::GraphemeClusterBreakIteratorUtf16*>(this); -} - -inline const GraphemeClusterBreakIteratorUtf16* GraphemeClusterBreakIteratorUtf16::FromFFI(const diplomat::capi::GraphemeClusterBreakIteratorUtf16* ptr) { - return reinterpret_cast<const GraphemeClusterBreakIteratorUtf16*>(ptr); -} - -inline GraphemeClusterBreakIteratorUtf16* GraphemeClusterBreakIteratorUtf16::FromFFI(diplomat::capi::GraphemeClusterBreakIteratorUtf16* ptr) { - return reinterpret_cast<GraphemeClusterBreakIteratorUtf16*>(ptr); -} - -inline void GraphemeClusterBreakIteratorUtf16::operator delete(void* ptr) { - diplomat::capi::icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(reinterpret_cast<diplomat::capi::GraphemeClusterBreakIteratorUtf16*>(ptr)); -} - - -#endif // GraphemeClusterBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.d.hpp deleted file mode 100644 index 209afcc2061..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef GraphemeClusterBreakIteratorUtf8_D_HPP -#define GraphemeClusterBreakIteratorUtf8_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct GraphemeClusterBreakIteratorUtf8; -} // namespace capi -} // namespace - -class GraphemeClusterBreakIteratorUtf8 { -public: - - inline int32_t next(); - - inline const diplomat::capi::GraphemeClusterBreakIteratorUtf8* AsFFI() const; - inline diplomat::capi::GraphemeClusterBreakIteratorUtf8* AsFFI(); - inline static const GraphemeClusterBreakIteratorUtf8* FromFFI(const diplomat::capi::GraphemeClusterBreakIteratorUtf8* ptr); - inline static GraphemeClusterBreakIteratorUtf8* FromFFI(diplomat::capi::GraphemeClusterBreakIteratorUtf8* ptr); - inline static void operator delete(void* ptr); -private: - GraphemeClusterBreakIteratorUtf8() = delete; - GraphemeClusterBreakIteratorUtf8(const GraphemeClusterBreakIteratorUtf8&) = delete; - GraphemeClusterBreakIteratorUtf8(GraphemeClusterBreakIteratorUtf8&&) noexcept = delete; - GraphemeClusterBreakIteratorUtf8 operator=(const GraphemeClusterBreakIteratorUtf8&) = delete; - GraphemeClusterBreakIteratorUtf8 operator=(GraphemeClusterBreakIteratorUtf8&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GraphemeClusterBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.hpp deleted file mode 100644 index 352f2a7f1fe..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterBreakIteratorUtf8.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef GraphemeClusterBreakIteratorUtf8_HPP -#define GraphemeClusterBreakIteratorUtf8_HPP - -#include "GraphemeClusterBreakIteratorUtf8.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(diplomat::capi::GraphemeClusterBreakIteratorUtf8* self); - - - void icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(GraphemeClusterBreakIteratorUtf8* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t GraphemeClusterBreakIteratorUtf8::next() { - auto result = diplomat::capi::icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::GraphemeClusterBreakIteratorUtf8* GraphemeClusterBreakIteratorUtf8::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GraphemeClusterBreakIteratorUtf8*>(this); -} - -inline diplomat::capi::GraphemeClusterBreakIteratorUtf8* GraphemeClusterBreakIteratorUtf8::AsFFI() { - return reinterpret_cast<diplomat::capi::GraphemeClusterBreakIteratorUtf8*>(this); -} - -inline const GraphemeClusterBreakIteratorUtf8* GraphemeClusterBreakIteratorUtf8::FromFFI(const diplomat::capi::GraphemeClusterBreakIteratorUtf8* ptr) { - return reinterpret_cast<const GraphemeClusterBreakIteratorUtf8*>(ptr); -} - -inline GraphemeClusterBreakIteratorUtf8* GraphemeClusterBreakIteratorUtf8::FromFFI(diplomat::capi::GraphemeClusterBreakIteratorUtf8* ptr) { - return reinterpret_cast<GraphemeClusterBreakIteratorUtf8*>(ptr); -} - -inline void GraphemeClusterBreakIteratorUtf8::operator delete(void* ptr) { - diplomat::capi::icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(reinterpret_cast<diplomat::capi::GraphemeClusterBreakIteratorUtf8*>(ptr)); -} - - -#endif // GraphemeClusterBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterSegmenter.d.hpp b/ffi/capi/bindings/cpp/GraphemeClusterSegmenter.d.hpp deleted file mode 100644 index ee28b315d8c..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterSegmenter.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef GraphemeClusterSegmenter_D_HPP -#define GraphemeClusterSegmenter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct GraphemeClusterBreakIteratorLatin1; } -class GraphemeClusterBreakIteratorLatin1; -namespace diplomat::capi { struct GraphemeClusterBreakIteratorUtf16; } -class GraphemeClusterBreakIteratorUtf16; -namespace diplomat::capi { struct GraphemeClusterBreakIteratorUtf8; } -class GraphemeClusterBreakIteratorUtf8; -class DataError; - - -namespace diplomat { -namespace capi { - struct GraphemeClusterSegmenter; -} // namespace capi -} // namespace - -class GraphemeClusterSegmenter { -public: - - inline static diplomat::result<std::unique_ptr<GraphemeClusterSegmenter>, DataError> create(const DataProvider& provider); - - inline std::unique_ptr<GraphemeClusterBreakIteratorUtf8> segment(std::string_view input) const; - - inline std::unique_ptr<GraphemeClusterBreakIteratorUtf16> segment16(std::u16string_view input) const; - - inline std::unique_ptr<GraphemeClusterBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; - - inline const diplomat::capi::GraphemeClusterSegmenter* AsFFI() const; - inline diplomat::capi::GraphemeClusterSegmenter* AsFFI(); - inline static const GraphemeClusterSegmenter* FromFFI(const diplomat::capi::GraphemeClusterSegmenter* ptr); - inline static GraphemeClusterSegmenter* FromFFI(diplomat::capi::GraphemeClusterSegmenter* ptr); - inline static void operator delete(void* ptr); -private: - GraphemeClusterSegmenter() = delete; - GraphemeClusterSegmenter(const GraphemeClusterSegmenter&) = delete; - GraphemeClusterSegmenter(GraphemeClusterSegmenter&&) noexcept = delete; - GraphemeClusterSegmenter operator=(const GraphemeClusterSegmenter&) = delete; - GraphemeClusterSegmenter operator=(GraphemeClusterSegmenter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GraphemeClusterSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/GraphemeClusterSegmenter.hpp b/ffi/capi/bindings/cpp/GraphemeClusterSegmenter.hpp deleted file mode 100644 index b611d16e8d5..00000000000 --- a/ffi/capi/bindings/cpp/GraphemeClusterSegmenter.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef GraphemeClusterSegmenter_HPP -#define GraphemeClusterSegmenter_HPP - -#include "GraphemeClusterSegmenter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "GraphemeClusterBreakIteratorLatin1.hpp" -#include "GraphemeClusterBreakIteratorUtf16.hpp" -#include "GraphemeClusterBreakIteratorUtf8.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_GraphemeClusterSegmenter_create_mv1_result {union {diplomat::capi::GraphemeClusterSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_GraphemeClusterSegmenter_create_mv1_result; - icu4x_GraphemeClusterSegmenter_create_mv1_result icu4x_GraphemeClusterSegmenter_create_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::GraphemeClusterBreakIteratorUtf8* icu4x_GraphemeClusterSegmenter_segment_utf8_mv1(const diplomat::capi::GraphemeClusterSegmenter* self, const char* input_data, size_t input_len); - - diplomat::capi::GraphemeClusterBreakIteratorUtf16* icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(const diplomat::capi::GraphemeClusterSegmenter* self, const char16_t* input_data, size_t input_len); - - diplomat::capi::GraphemeClusterBreakIteratorLatin1* icu4x_GraphemeClusterSegmenter_segment_latin1_mv1(const diplomat::capi::GraphemeClusterSegmenter* self, const uint8_t* input_data, size_t input_len); - - - void icu4x_GraphemeClusterSegmenter_destroy_mv1(GraphemeClusterSegmenter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<GraphemeClusterSegmenter>, DataError> GraphemeClusterSegmenter::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_GraphemeClusterSegmenter_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<GraphemeClusterSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<GraphemeClusterSegmenter>>(std::unique_ptr<GraphemeClusterSegmenter>(GraphemeClusterSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<GraphemeClusterSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<GraphemeClusterBreakIteratorUtf8> GraphemeClusterSegmenter::segment(std::string_view input) const { - auto result = diplomat::capi::icu4x_GraphemeClusterSegmenter_segment_utf8_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<GraphemeClusterBreakIteratorUtf8>(GraphemeClusterBreakIteratorUtf8::FromFFI(result)); -} - -inline std::unique_ptr<GraphemeClusterBreakIteratorUtf16> GraphemeClusterSegmenter::segment16(std::u16string_view input) const { - auto result = diplomat::capi::icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<GraphemeClusterBreakIteratorUtf16>(GraphemeClusterBreakIteratorUtf16::FromFFI(result)); -} - -inline std::unique_ptr<GraphemeClusterBreakIteratorLatin1> GraphemeClusterSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { - auto result = diplomat::capi::icu4x_GraphemeClusterSegmenter_segment_latin1_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<GraphemeClusterBreakIteratorLatin1>(GraphemeClusterBreakIteratorLatin1::FromFFI(result)); -} - -inline const diplomat::capi::GraphemeClusterSegmenter* GraphemeClusterSegmenter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GraphemeClusterSegmenter*>(this); -} - -inline diplomat::capi::GraphemeClusterSegmenter* GraphemeClusterSegmenter::AsFFI() { - return reinterpret_cast<diplomat::capi::GraphemeClusterSegmenter*>(this); -} - -inline const GraphemeClusterSegmenter* GraphemeClusterSegmenter::FromFFI(const diplomat::capi::GraphemeClusterSegmenter* ptr) { - return reinterpret_cast<const GraphemeClusterSegmenter*>(ptr); -} - -inline GraphemeClusterSegmenter* GraphemeClusterSegmenter::FromFFI(diplomat::capi::GraphemeClusterSegmenter* ptr) { - return reinterpret_cast<GraphemeClusterSegmenter*>(ptr); -} - -inline void GraphemeClusterSegmenter::operator delete(void* ptr) { - diplomat::capi::icu4x_GraphemeClusterSegmenter_destroy_mv1(reinterpret_cast<diplomat::capi::GraphemeClusterSegmenter*>(ptr)); -} - - -#endif // GraphemeClusterSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/GregorianDateFormatter.d.hpp b/ffi/capi/bindings/cpp/GregorianDateFormatter.d.hpp deleted file mode 100644 index 42fe5d6d68a..00000000000 --- a/ffi/capi/bindings/cpp/GregorianDateFormatter.d.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef GregorianDateFormatter_D_HPP -#define GregorianDateFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct IsoDate; } -class IsoDate; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Locale; } -class Locale; -class DateLength; -class Error; - - -namespace diplomat { -namespace capi { - struct GregorianDateFormatter; -} // namespace capi -} // namespace - -class GregorianDateFormatter { -public: - - inline static diplomat::result<std::unique_ptr<GregorianDateFormatter>, Error> create_with_length(const DataProvider& provider, const Locale& locale, DateLength length); - - inline std::string format_iso_date(const IsoDate& value) const; - - inline std::string format_iso_datetime(const IsoDateTime& value) const; - - inline const diplomat::capi::GregorianDateFormatter* AsFFI() const; - inline diplomat::capi::GregorianDateFormatter* AsFFI(); - inline static const GregorianDateFormatter* FromFFI(const diplomat::capi::GregorianDateFormatter* ptr); - inline static GregorianDateFormatter* FromFFI(diplomat::capi::GregorianDateFormatter* ptr); - inline static void operator delete(void* ptr); -private: - GregorianDateFormatter() = delete; - GregorianDateFormatter(const GregorianDateFormatter&) = delete; - GregorianDateFormatter(GregorianDateFormatter&&) noexcept = delete; - GregorianDateFormatter operator=(const GregorianDateFormatter&) = delete; - GregorianDateFormatter operator=(GregorianDateFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GregorianDateFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/GregorianDateFormatter.hpp b/ffi/capi/bindings/cpp/GregorianDateFormatter.hpp deleted file mode 100644 index 0182d605b52..00000000000 --- a/ffi/capi/bindings/cpp/GregorianDateFormatter.hpp +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef GregorianDateFormatter_HPP -#define GregorianDateFormatter_HPP - -#include "GregorianDateFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataProvider.hpp" -#include "DateLength.hpp" -#include "Error.hpp" -#include "IsoDate.hpp" -#include "IsoDateTime.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_GregorianDateFormatter_create_with_length_mv1_result {union {diplomat::capi::GregorianDateFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_GregorianDateFormatter_create_with_length_mv1_result; - icu4x_GregorianDateFormatter_create_with_length_mv1_result icu4x_GregorianDateFormatter_create_with_length_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength length); - - void icu4x_GregorianDateFormatter_format_iso_date_mv1(const diplomat::capi::GregorianDateFormatter* self, const diplomat::capi::IsoDate* value, diplomat::capi::DiplomatWrite* write); - - void icu4x_GregorianDateFormatter_format_iso_datetime_mv1(const diplomat::capi::GregorianDateFormatter* self, const diplomat::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); - - - void icu4x_GregorianDateFormatter_destroy_mv1(GregorianDateFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<GregorianDateFormatter>, Error> GregorianDateFormatter::create_with_length(const DataProvider& provider, const Locale& locale, DateLength length) { - auto result = diplomat::capi::icu4x_GregorianDateFormatter_create_with_length_mv1(provider.AsFFI(), - locale.AsFFI(), - length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<GregorianDateFormatter>, Error>(diplomat::Ok<std::unique_ptr<GregorianDateFormatter>>(std::unique_ptr<GregorianDateFormatter>(GregorianDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<GregorianDateFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline std::string GregorianDateFormatter::format_iso_date(const IsoDate& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_GregorianDateFormatter_format_iso_date_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline std::string GregorianDateFormatter::format_iso_datetime(const IsoDateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_GregorianDateFormatter_format_iso_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline const diplomat::capi::GregorianDateFormatter* GregorianDateFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GregorianDateFormatter*>(this); -} - -inline diplomat::capi::GregorianDateFormatter* GregorianDateFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::GregorianDateFormatter*>(this); -} - -inline const GregorianDateFormatter* GregorianDateFormatter::FromFFI(const diplomat::capi::GregorianDateFormatter* ptr) { - return reinterpret_cast<const GregorianDateFormatter*>(ptr); -} - -inline GregorianDateFormatter* GregorianDateFormatter::FromFFI(diplomat::capi::GregorianDateFormatter* ptr) { - return reinterpret_cast<GregorianDateFormatter*>(ptr); -} - -inline void GregorianDateFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_GregorianDateFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::GregorianDateFormatter*>(ptr)); -} - - -#endif // GregorianDateFormatter_HPP diff --git a/ffi/capi/bindings/cpp/GregorianDateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/GregorianDateTimeFormatter.d.hpp deleted file mode 100644 index 88c0e1b12ff..00000000000 --- a/ffi/capi/bindings/cpp/GregorianDateTimeFormatter.d.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef GregorianDateTimeFormatter_D_HPP -#define GregorianDateTimeFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Locale; } -class Locale; -class DateLength; -class Error; -class TimeLength; - - -namespace diplomat { -namespace capi { - struct GregorianDateTimeFormatter; -} // namespace capi -} // namespace - -class GregorianDateTimeFormatter { -public: - - inline static diplomat::result<std::unique_ptr<GregorianDateTimeFormatter>, Error> create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length); - - inline std::string format_iso_datetime(const IsoDateTime& value) const; - - inline const diplomat::capi::GregorianDateTimeFormatter* AsFFI() const; - inline diplomat::capi::GregorianDateTimeFormatter* AsFFI(); - inline static const GregorianDateTimeFormatter* FromFFI(const diplomat::capi::GregorianDateTimeFormatter* ptr); - inline static GregorianDateTimeFormatter* FromFFI(diplomat::capi::GregorianDateTimeFormatter* ptr); - inline static void operator delete(void* ptr); -private: - GregorianDateTimeFormatter() = delete; - GregorianDateTimeFormatter(const GregorianDateTimeFormatter&) = delete; - GregorianDateTimeFormatter(GregorianDateTimeFormatter&&) noexcept = delete; - GregorianDateTimeFormatter operator=(const GregorianDateTimeFormatter&) = delete; - GregorianDateTimeFormatter operator=(GregorianDateTimeFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GregorianDateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/GregorianDateTimeFormatter.hpp b/ffi/capi/bindings/cpp/GregorianDateTimeFormatter.hpp deleted file mode 100644 index 9b35e594465..00000000000 --- a/ffi/capi/bindings/cpp/GregorianDateTimeFormatter.hpp +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef GregorianDateTimeFormatter_HPP -#define GregorianDateTimeFormatter_HPP - -#include "GregorianDateTimeFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataProvider.hpp" -#include "DateLength.hpp" -#include "Error.hpp" -#include "IsoDateTime.hpp" -#include "Locale.hpp" -#include "TimeLength.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1_result {union {diplomat::capi::GregorianDateTimeFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1_result; - icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1_result icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength date_length, diplomat::capi::TimeLength time_length); - - void icu4x_GregorianDateTimeFormatter_format_iso_datetime_mv1(const diplomat::capi::GregorianDateTimeFormatter* self, const diplomat::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); - - - void icu4x_GregorianDateTimeFormatter_destroy_mv1(GregorianDateTimeFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<GregorianDateTimeFormatter>, Error> GregorianDateTimeFormatter::create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length) { - auto result = diplomat::capi::icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), - locale.AsFFI(), - date_length.AsFFI(), - time_length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<GregorianDateTimeFormatter>, Error>(diplomat::Ok<std::unique_ptr<GregorianDateTimeFormatter>>(std::unique_ptr<GregorianDateTimeFormatter>(GregorianDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<GregorianDateTimeFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline std::string GregorianDateTimeFormatter::format_iso_datetime(const IsoDateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_GregorianDateTimeFormatter_format_iso_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline const diplomat::capi::GregorianDateTimeFormatter* GregorianDateTimeFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GregorianDateTimeFormatter*>(this); -} - -inline diplomat::capi::GregorianDateTimeFormatter* GregorianDateTimeFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::GregorianDateTimeFormatter*>(this); -} - -inline const GregorianDateTimeFormatter* GregorianDateTimeFormatter::FromFFI(const diplomat::capi::GregorianDateTimeFormatter* ptr) { - return reinterpret_cast<const GregorianDateTimeFormatter*>(ptr); -} - -inline GregorianDateTimeFormatter* GregorianDateTimeFormatter::FromFFI(diplomat::capi::GregorianDateTimeFormatter* ptr) { - return reinterpret_cast<GregorianDateTimeFormatter*>(ptr); -} - -inline void GregorianDateTimeFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_GregorianDateTimeFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::GregorianDateTimeFormatter*>(ptr)); -} - - -#endif // GregorianDateTimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.d.hpp deleted file mode 100644 index 47ef19bd390..00000000000 --- a/ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.d.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef GregorianZonedDateTimeFormatter_D_HPP -#define GregorianZonedDateTimeFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CustomTimeZone; } -class CustomTimeZone; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Locale; } -class Locale; -struct IsoTimeZoneOptions; -class DateLength; -class Error; -class TimeLength; - - -namespace diplomat { -namespace capi { - struct GregorianZonedDateTimeFormatter; -} // namespace capi -} // namespace - -class GregorianZonedDateTimeFormatter { -public: - - inline static diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error> create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length); - - inline static diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error> create_with_lengths_and_iso_8601_time_zone_fallback(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length, IsoTimeZoneOptions zone_options); - - inline std::string format_iso_datetime_with_custom_time_zone(const IsoDateTime& datetime, const CustomTimeZone& time_zone) const; - - inline const diplomat::capi::GregorianZonedDateTimeFormatter* AsFFI() const; - inline diplomat::capi::GregorianZonedDateTimeFormatter* AsFFI(); - inline static const GregorianZonedDateTimeFormatter* FromFFI(const diplomat::capi::GregorianZonedDateTimeFormatter* ptr); - inline static GregorianZonedDateTimeFormatter* FromFFI(diplomat::capi::GregorianZonedDateTimeFormatter* ptr); - inline static void operator delete(void* ptr); -private: - GregorianZonedDateTimeFormatter() = delete; - GregorianZonedDateTimeFormatter(const GregorianZonedDateTimeFormatter&) = delete; - GregorianZonedDateTimeFormatter(GregorianZonedDateTimeFormatter&&) noexcept = delete; - GregorianZonedDateTimeFormatter operator=(const GregorianZonedDateTimeFormatter&) = delete; - GregorianZonedDateTimeFormatter operator=(GregorianZonedDateTimeFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // GregorianZonedDateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.hpp b/ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.hpp deleted file mode 100644 index 88f883c74f2..00000000000 --- a/ffi/capi/bindings/cpp/GregorianZonedDateTimeFormatter.hpp +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef GregorianZonedDateTimeFormatter_HPP -#define GregorianZonedDateTimeFormatter_HPP - -#include "GregorianZonedDateTimeFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CustomTimeZone.hpp" -#include "DataProvider.hpp" -#include "DateLength.hpp" -#include "Error.hpp" -#include "IsoDateTime.hpp" -#include "IsoTimeZoneOptions.hpp" -#include "Locale.hpp" -#include "TimeLength.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1_result {union {diplomat::capi::GregorianZonedDateTimeFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1_result; - icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength date_length, diplomat::capi::TimeLength time_length); - - typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result {union {diplomat::capi::GregorianZonedDateTimeFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result; - icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength date_length, diplomat::capi::TimeLength time_length, diplomat::capi::IsoTimeZoneOptions zone_options); - - void icu4x_GregorianZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(const diplomat::capi::GregorianZonedDateTimeFormatter* self, const diplomat::capi::IsoDateTime* datetime, const diplomat::capi::CustomTimeZone* time_zone, diplomat::capi::DiplomatWrite* write); - - - void icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(GregorianZonedDateTimeFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error> GregorianZonedDateTimeFormatter::create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length) { - auto result = diplomat::capi::icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), - locale.AsFFI(), - date_length.AsFFI(), - time_length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error>(diplomat::Ok<std::unique_ptr<GregorianZonedDateTimeFormatter>>(std::unique_ptr<GregorianZonedDateTimeFormatter>(GregorianZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error> GregorianZonedDateTimeFormatter::create_with_lengths_and_iso_8601_time_zone_fallback(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length, IsoTimeZoneOptions zone_options) { - auto result = diplomat::capi::icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(provider.AsFFI(), - locale.AsFFI(), - date_length.AsFFI(), - time_length.AsFFI(), - zone_options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error>(diplomat::Ok<std::unique_ptr<GregorianZonedDateTimeFormatter>>(std::unique_ptr<GregorianZonedDateTimeFormatter>(GregorianZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<GregorianZonedDateTimeFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline std::string GregorianZonedDateTimeFormatter::format_iso_datetime_with_custom_time_zone(const IsoDateTime& datetime, const CustomTimeZone& time_zone) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_GregorianZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(this->AsFFI(), - datetime.AsFFI(), - time_zone.AsFFI(), - &write); - return output; -} - -inline const diplomat::capi::GregorianZonedDateTimeFormatter* GregorianZonedDateTimeFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::GregorianZonedDateTimeFormatter*>(this); -} - -inline diplomat::capi::GregorianZonedDateTimeFormatter* GregorianZonedDateTimeFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::GregorianZonedDateTimeFormatter*>(this); -} - -inline const GregorianZonedDateTimeFormatter* GregorianZonedDateTimeFormatter::FromFFI(const diplomat::capi::GregorianZonedDateTimeFormatter* ptr) { - return reinterpret_cast<const GregorianZonedDateTimeFormatter*>(ptr); -} - -inline GregorianZonedDateTimeFormatter* GregorianZonedDateTimeFormatter::FromFFI(diplomat::capi::GregorianZonedDateTimeFormatter* ptr) { - return reinterpret_cast<GregorianZonedDateTimeFormatter*>(ptr); -} - -inline void GregorianZonedDateTimeFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::GregorianZonedDateTimeFormatter*>(ptr)); -} - - -#endif // GregorianZonedDateTimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/IsoDate.d.hpp b/ffi/capi/bindings/cpp/IsoDate.d.hpp deleted file mode 100644 index ef1c18f1269..00000000000 --- a/ffi/capi/bindings/cpp/IsoDate.d.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef IsoDate_D_HPP -#define IsoDate_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct Calendar; } -class Calendar; -namespace diplomat::capi { struct Date; } -class Date; -namespace diplomat::capi { struct WeekCalculator; } -class WeekCalculator; -struct WeekOf; -class CalendarError; -class CalendarParseError; -class IsoWeekday; - - -namespace diplomat { -namespace capi { - struct IsoDate; -} // namespace capi -} // namespace - -class IsoDate { -public: - - inline static diplomat::result<std::unique_ptr<IsoDate>, CalendarError> create(int32_t year, uint8_t month, uint8_t day); - - inline static diplomat::result<std::unique_ptr<IsoDate>, CalendarParseError> from_string(std::string_view v); - - inline static std::unique_ptr<IsoDate> unix_epoch(); - - inline std::unique_ptr<Date> to_calendar(const Calendar& calendar) const; - - inline std::unique_ptr<Date> to_any() const; - - inline uint16_t day_of_year() const; - - inline uint32_t day_of_month() const; - - inline IsoWeekday day_of_week() const; - - inline uint32_t week_of_month(IsoWeekday first_weekday) const; - - inline WeekOf week_of_year(const WeekCalculator& calculator) const; - - inline uint32_t month() const; - - inline int32_t year() const; - - inline bool is_in_leap_year() const; - - inline uint8_t months_in_year() const; - - inline uint8_t days_in_month() const; - - inline uint16_t days_in_year() const; - - inline const diplomat::capi::IsoDate* AsFFI() const; - inline diplomat::capi::IsoDate* AsFFI(); - inline static const IsoDate* FromFFI(const diplomat::capi::IsoDate* ptr); - inline static IsoDate* FromFFI(diplomat::capi::IsoDate* ptr); - inline static void operator delete(void* ptr); -private: - IsoDate() = delete; - IsoDate(const IsoDate&) = delete; - IsoDate(IsoDate&&) noexcept = delete; - IsoDate operator=(const IsoDate&) = delete; - IsoDate operator=(IsoDate&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // IsoDate_D_HPP diff --git a/ffi/capi/bindings/cpp/IsoDate.hpp b/ffi/capi/bindings/cpp/IsoDate.hpp deleted file mode 100644 index 8c0201bb4cf..00000000000 --- a/ffi/capi/bindings/cpp/IsoDate.hpp +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef IsoDate_HPP -#define IsoDate_HPP - -#include "IsoDate.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "Calendar.hpp" -#include "CalendarError.hpp" -#include "CalendarParseError.hpp" -#include "Date.hpp" -#include "IsoWeekday.hpp" -#include "WeekCalculator.hpp" -#include "WeekOf.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_IsoDate_create_mv1_result {union {diplomat::capi::IsoDate* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_IsoDate_create_mv1_result; - icu4x_IsoDate_create_mv1_result icu4x_IsoDate_create_mv1(int32_t year, uint8_t month, uint8_t day); - - typedef struct icu4x_IsoDate_from_string_mv1_result {union {diplomat::capi::IsoDate* ok; diplomat::capi::CalendarParseError err;}; bool is_ok;} icu4x_IsoDate_from_string_mv1_result; - icu4x_IsoDate_from_string_mv1_result icu4x_IsoDate_from_string_mv1(const char* v_data, size_t v_len); - - diplomat::capi::IsoDate* icu4x_IsoDate_unix_epoch_mv1(void); - - diplomat::capi::Date* icu4x_IsoDate_to_calendar_mv1(const diplomat::capi::IsoDate* self, const diplomat::capi::Calendar* calendar); - - diplomat::capi::Date* icu4x_IsoDate_to_any_mv1(const diplomat::capi::IsoDate* self); - - uint16_t icu4x_IsoDate_day_of_year_mv1(const diplomat::capi::IsoDate* self); - - uint32_t icu4x_IsoDate_day_of_month_mv1(const diplomat::capi::IsoDate* self); - - diplomat::capi::IsoWeekday icu4x_IsoDate_day_of_week_mv1(const diplomat::capi::IsoDate* self); - - uint32_t icu4x_IsoDate_week_of_month_mv1(const diplomat::capi::IsoDate* self, diplomat::capi::IsoWeekday first_weekday); - - diplomat::capi::WeekOf icu4x_IsoDate_week_of_year_mv1(const diplomat::capi::IsoDate* self, const diplomat::capi::WeekCalculator* calculator); - - uint32_t icu4x_IsoDate_month_mv1(const diplomat::capi::IsoDate* self); - - int32_t icu4x_IsoDate_year_mv1(const diplomat::capi::IsoDate* self); - - bool icu4x_IsoDate_is_in_leap_year_mv1(const diplomat::capi::IsoDate* self); - - uint8_t icu4x_IsoDate_months_in_year_mv1(const diplomat::capi::IsoDate* self); - - uint8_t icu4x_IsoDate_days_in_month_mv1(const diplomat::capi::IsoDate* self); - - uint16_t icu4x_IsoDate_days_in_year_mv1(const diplomat::capi::IsoDate* self); - - - void icu4x_IsoDate_destroy_mv1(IsoDate* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<IsoDate>, CalendarError> IsoDate::create(int32_t year, uint8_t month, uint8_t day) { - auto result = diplomat::capi::icu4x_IsoDate_create_mv1(year, - month, - day); - return result.is_ok ? diplomat::result<std::unique_ptr<IsoDate>, CalendarError>(diplomat::Ok<std::unique_ptr<IsoDate>>(std::unique_ptr<IsoDate>(IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<IsoDate>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<IsoDate>, CalendarParseError> IsoDate::from_string(std::string_view v) { - auto result = diplomat::capi::icu4x_IsoDate_from_string_mv1(v.data(), - v.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<IsoDate>, CalendarParseError>(diplomat::Ok<std::unique_ptr<IsoDate>>(std::unique_ptr<IsoDate>(IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<IsoDate>, CalendarParseError>(diplomat::Err<CalendarParseError>(CalendarParseError::FromFFI(result.err))); -} - -inline std::unique_ptr<IsoDate> IsoDate::unix_epoch() { - auto result = diplomat::capi::icu4x_IsoDate_unix_epoch_mv1(); - return std::unique_ptr<IsoDate>(IsoDate::FromFFI(result)); -} - -inline std::unique_ptr<Date> IsoDate::to_calendar(const Calendar& calendar) const { - auto result = diplomat::capi::icu4x_IsoDate_to_calendar_mv1(this->AsFFI(), - calendar.AsFFI()); - return std::unique_ptr<Date>(Date::FromFFI(result)); -} - -inline std::unique_ptr<Date> IsoDate::to_any() const { - auto result = diplomat::capi::icu4x_IsoDate_to_any_mv1(this->AsFFI()); - return std::unique_ptr<Date>(Date::FromFFI(result)); -} - -inline uint16_t IsoDate::day_of_year() const { - auto result = diplomat::capi::icu4x_IsoDate_day_of_year_mv1(this->AsFFI()); - return result; -} - -inline uint32_t IsoDate::day_of_month() const { - auto result = diplomat::capi::icu4x_IsoDate_day_of_month_mv1(this->AsFFI()); - return result; -} - -inline IsoWeekday IsoDate::day_of_week() const { - auto result = diplomat::capi::icu4x_IsoDate_day_of_week_mv1(this->AsFFI()); - return IsoWeekday::FromFFI(result); -} - -inline uint32_t IsoDate::week_of_month(IsoWeekday first_weekday) const { - auto result = diplomat::capi::icu4x_IsoDate_week_of_month_mv1(this->AsFFI(), - first_weekday.AsFFI()); - return result; -} - -inline WeekOf IsoDate::week_of_year(const WeekCalculator& calculator) const { - auto result = diplomat::capi::icu4x_IsoDate_week_of_year_mv1(this->AsFFI(), - calculator.AsFFI()); - return WeekOf::FromFFI(result); -} - -inline uint32_t IsoDate::month() const { - auto result = diplomat::capi::icu4x_IsoDate_month_mv1(this->AsFFI()); - return result; -} - -inline int32_t IsoDate::year() const { - auto result = diplomat::capi::icu4x_IsoDate_year_mv1(this->AsFFI()); - return result; -} - -inline bool IsoDate::is_in_leap_year() const { - auto result = diplomat::capi::icu4x_IsoDate_is_in_leap_year_mv1(this->AsFFI()); - return result; -} - -inline uint8_t IsoDate::months_in_year() const { - auto result = diplomat::capi::icu4x_IsoDate_months_in_year_mv1(this->AsFFI()); - return result; -} - -inline uint8_t IsoDate::days_in_month() const { - auto result = diplomat::capi::icu4x_IsoDate_days_in_month_mv1(this->AsFFI()); - return result; -} - -inline uint16_t IsoDate::days_in_year() const { - auto result = diplomat::capi::icu4x_IsoDate_days_in_year_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::IsoDate* IsoDate::AsFFI() const { - return reinterpret_cast<const diplomat::capi::IsoDate*>(this); -} - -inline diplomat::capi::IsoDate* IsoDate::AsFFI() { - return reinterpret_cast<diplomat::capi::IsoDate*>(this); -} - -inline const IsoDate* IsoDate::FromFFI(const diplomat::capi::IsoDate* ptr) { - return reinterpret_cast<const IsoDate*>(ptr); -} - -inline IsoDate* IsoDate::FromFFI(diplomat::capi::IsoDate* ptr) { - return reinterpret_cast<IsoDate*>(ptr); -} - -inline void IsoDate::operator delete(void* ptr) { - diplomat::capi::icu4x_IsoDate_destroy_mv1(reinterpret_cast<diplomat::capi::IsoDate*>(ptr)); -} - - -#endif // IsoDate_HPP diff --git a/ffi/capi/bindings/cpp/IsoDateTime.d.hpp b/ffi/capi/bindings/cpp/IsoDateTime.d.hpp deleted file mode 100644 index 2247a1f156d..00000000000 --- a/ffi/capi/bindings/cpp/IsoDateTime.d.hpp +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef IsoDateTime_D_HPP -#define IsoDateTime_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct Calendar; } -class Calendar; -namespace diplomat::capi { struct DateTime; } -class DateTime; -namespace diplomat::capi { struct IsoDate; } -class IsoDate; -namespace diplomat::capi { struct Time; } -class Time; -namespace diplomat::capi { struct WeekCalculator; } -class WeekCalculator; -struct WeekOf; -class CalendarError; -class CalendarParseError; -class IsoWeekday; - - -namespace diplomat { -namespace capi { - struct IsoDateTime; -} // namespace capi -} // namespace - -class IsoDateTime { -public: - - inline static diplomat::result<std::unique_ptr<IsoDateTime>, CalendarError> create(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); - - inline static std::unique_ptr<IsoDateTime> from_date_and_time(const IsoDate& date, const Time& time); - - inline static diplomat::result<std::unique_ptr<IsoDateTime>, CalendarParseError> from_string(std::string_view v); - - inline static std::unique_ptr<IsoDateTime> local_unix_epoch(); - - inline static std::unique_ptr<IsoDateTime> from_minutes_since_local_unix_epoch(int32_t minutes); - - inline std::unique_ptr<IsoDate> date() const; - - inline std::unique_ptr<Time> time() const; - - inline std::unique_ptr<DateTime> to_any() const; - - inline int32_t minutes_since_local_unix_epoch() const; - - inline std::unique_ptr<DateTime> to_calendar(const Calendar& calendar) const; - - inline uint8_t hour() const; - - inline uint8_t minute() const; - - inline uint8_t second() const; - - inline uint32_t nanosecond() const; - - inline uint16_t day_of_year() const; - - inline uint32_t day_of_month() const; - - inline IsoWeekday day_of_week() const; - - inline uint32_t week_of_month(IsoWeekday first_weekday) const; - - inline WeekOf week_of_year(const WeekCalculator& calculator) const; - - inline uint32_t month() const; - - inline int32_t year() const; - - inline bool is_in_leap_year() const; - - inline uint8_t months_in_year() const; - - inline uint8_t days_in_month() const; - - inline uint16_t days_in_year() const; - - inline const diplomat::capi::IsoDateTime* AsFFI() const; - inline diplomat::capi::IsoDateTime* AsFFI(); - inline static const IsoDateTime* FromFFI(const diplomat::capi::IsoDateTime* ptr); - inline static IsoDateTime* FromFFI(diplomat::capi::IsoDateTime* ptr); - inline static void operator delete(void* ptr); -private: - IsoDateTime() = delete; - IsoDateTime(const IsoDateTime&) = delete; - IsoDateTime(IsoDateTime&&) noexcept = delete; - IsoDateTime operator=(const IsoDateTime&) = delete; - IsoDateTime operator=(IsoDateTime&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // IsoDateTime_D_HPP diff --git a/ffi/capi/bindings/cpp/IsoDateTime.hpp b/ffi/capi/bindings/cpp/IsoDateTime.hpp deleted file mode 100644 index acecb7229bc..00000000000 --- a/ffi/capi/bindings/cpp/IsoDateTime.hpp +++ /dev/null @@ -1,244 +0,0 @@ -#ifndef IsoDateTime_HPP -#define IsoDateTime_HPP - -#include "IsoDateTime.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "Calendar.hpp" -#include "CalendarError.hpp" -#include "CalendarParseError.hpp" -#include "DateTime.hpp" -#include "IsoDate.hpp" -#include "IsoWeekday.hpp" -#include "Time.hpp" -#include "WeekCalculator.hpp" -#include "WeekOf.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_IsoDateTime_create_mv1_result {union {diplomat::capi::IsoDateTime* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_IsoDateTime_create_mv1_result; - icu4x_IsoDateTime_create_mv1_result icu4x_IsoDateTime_create_mv1(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); - - diplomat::capi::IsoDateTime* icu4x_IsoDateTime_from_date_and_time_mv1(const diplomat::capi::IsoDate* date, const diplomat::capi::Time* time); - - typedef struct icu4x_IsoDateTime_from_string_mv1_result {union {diplomat::capi::IsoDateTime* ok; diplomat::capi::CalendarParseError err;}; bool is_ok;} icu4x_IsoDateTime_from_string_mv1_result; - icu4x_IsoDateTime_from_string_mv1_result icu4x_IsoDateTime_from_string_mv1(const char* v_data, size_t v_len); - - diplomat::capi::IsoDateTime* icu4x_IsoDateTime_local_unix_epoch_mv1(void); - - diplomat::capi::IsoDateTime* icu4x_IsoDateTime_from_minutes_since_local_unix_epoch_mv1(int32_t minutes); - - diplomat::capi::IsoDate* icu4x_IsoDateTime_date_mv1(const diplomat::capi::IsoDateTime* self); - - diplomat::capi::Time* icu4x_IsoDateTime_time_mv1(const diplomat::capi::IsoDateTime* self); - - diplomat::capi::DateTime* icu4x_IsoDateTime_to_any_mv1(const diplomat::capi::IsoDateTime* self); - - int32_t icu4x_IsoDateTime_minutes_since_local_unix_epoch_mv1(const diplomat::capi::IsoDateTime* self); - - diplomat::capi::DateTime* icu4x_IsoDateTime_to_calendar_mv1(const diplomat::capi::IsoDateTime* self, const diplomat::capi::Calendar* calendar); - - uint8_t icu4x_IsoDateTime_hour_mv1(const diplomat::capi::IsoDateTime* self); - - uint8_t icu4x_IsoDateTime_minute_mv1(const diplomat::capi::IsoDateTime* self); - - uint8_t icu4x_IsoDateTime_second_mv1(const diplomat::capi::IsoDateTime* self); - - uint32_t icu4x_IsoDateTime_nanosecond_mv1(const diplomat::capi::IsoDateTime* self); - - uint16_t icu4x_IsoDateTime_day_of_year_mv1(const diplomat::capi::IsoDateTime* self); - - uint32_t icu4x_IsoDateTime_day_of_month_mv1(const diplomat::capi::IsoDateTime* self); - - diplomat::capi::IsoWeekday icu4x_IsoDateTime_day_of_week_mv1(const diplomat::capi::IsoDateTime* self); - - uint32_t icu4x_IsoDateTime_week_of_month_mv1(const diplomat::capi::IsoDateTime* self, diplomat::capi::IsoWeekday first_weekday); - - diplomat::capi::WeekOf icu4x_IsoDateTime_week_of_year_mv1(const diplomat::capi::IsoDateTime* self, const diplomat::capi::WeekCalculator* calculator); - - uint32_t icu4x_IsoDateTime_month_mv1(const diplomat::capi::IsoDateTime* self); - - int32_t icu4x_IsoDateTime_year_mv1(const diplomat::capi::IsoDateTime* self); - - bool icu4x_IsoDateTime_is_in_leap_year_mv1(const diplomat::capi::IsoDateTime* self); - - uint8_t icu4x_IsoDateTime_months_in_year_mv1(const diplomat::capi::IsoDateTime* self); - - uint8_t icu4x_IsoDateTime_days_in_month_mv1(const diplomat::capi::IsoDateTime* self); - - uint16_t icu4x_IsoDateTime_days_in_year_mv1(const diplomat::capi::IsoDateTime* self); - - - void icu4x_IsoDateTime_destroy_mv1(IsoDateTime* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<IsoDateTime>, CalendarError> IsoDateTime::create(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond) { - auto result = diplomat::capi::icu4x_IsoDateTime_create_mv1(year, - month, - day, - hour, - minute, - second, - nanosecond); - return result.is_ok ? diplomat::result<std::unique_ptr<IsoDateTime>, CalendarError>(diplomat::Ok<std::unique_ptr<IsoDateTime>>(std::unique_ptr<IsoDateTime>(IsoDateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<IsoDateTime>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline std::unique_ptr<IsoDateTime> IsoDateTime::from_date_and_time(const IsoDate& date, const Time& time) { - auto result = diplomat::capi::icu4x_IsoDateTime_from_date_and_time_mv1(date.AsFFI(), - time.AsFFI()); - return std::unique_ptr<IsoDateTime>(IsoDateTime::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<IsoDateTime>, CalendarParseError> IsoDateTime::from_string(std::string_view v) { - auto result = diplomat::capi::icu4x_IsoDateTime_from_string_mv1(v.data(), - v.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<IsoDateTime>, CalendarParseError>(diplomat::Ok<std::unique_ptr<IsoDateTime>>(std::unique_ptr<IsoDateTime>(IsoDateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<IsoDateTime>, CalendarParseError>(diplomat::Err<CalendarParseError>(CalendarParseError::FromFFI(result.err))); -} - -inline std::unique_ptr<IsoDateTime> IsoDateTime::local_unix_epoch() { - auto result = diplomat::capi::icu4x_IsoDateTime_local_unix_epoch_mv1(); - return std::unique_ptr<IsoDateTime>(IsoDateTime::FromFFI(result)); -} - -inline std::unique_ptr<IsoDateTime> IsoDateTime::from_minutes_since_local_unix_epoch(int32_t minutes) { - auto result = diplomat::capi::icu4x_IsoDateTime_from_minutes_since_local_unix_epoch_mv1(minutes); - return std::unique_ptr<IsoDateTime>(IsoDateTime::FromFFI(result)); -} - -inline std::unique_ptr<IsoDate> IsoDateTime::date() const { - auto result = diplomat::capi::icu4x_IsoDateTime_date_mv1(this->AsFFI()); - return std::unique_ptr<IsoDate>(IsoDate::FromFFI(result)); -} - -inline std::unique_ptr<Time> IsoDateTime::time() const { - auto result = diplomat::capi::icu4x_IsoDateTime_time_mv1(this->AsFFI()); - return std::unique_ptr<Time>(Time::FromFFI(result)); -} - -inline std::unique_ptr<DateTime> IsoDateTime::to_any() const { - auto result = diplomat::capi::icu4x_IsoDateTime_to_any_mv1(this->AsFFI()); - return std::unique_ptr<DateTime>(DateTime::FromFFI(result)); -} - -inline int32_t IsoDateTime::minutes_since_local_unix_epoch() const { - auto result = diplomat::capi::icu4x_IsoDateTime_minutes_since_local_unix_epoch_mv1(this->AsFFI()); - return result; -} - -inline std::unique_ptr<DateTime> IsoDateTime::to_calendar(const Calendar& calendar) const { - auto result = diplomat::capi::icu4x_IsoDateTime_to_calendar_mv1(this->AsFFI(), - calendar.AsFFI()); - return std::unique_ptr<DateTime>(DateTime::FromFFI(result)); -} - -inline uint8_t IsoDateTime::hour() const { - auto result = diplomat::capi::icu4x_IsoDateTime_hour_mv1(this->AsFFI()); - return result; -} - -inline uint8_t IsoDateTime::minute() const { - auto result = diplomat::capi::icu4x_IsoDateTime_minute_mv1(this->AsFFI()); - return result; -} - -inline uint8_t IsoDateTime::second() const { - auto result = diplomat::capi::icu4x_IsoDateTime_second_mv1(this->AsFFI()); - return result; -} - -inline uint32_t IsoDateTime::nanosecond() const { - auto result = diplomat::capi::icu4x_IsoDateTime_nanosecond_mv1(this->AsFFI()); - return result; -} - -inline uint16_t IsoDateTime::day_of_year() const { - auto result = diplomat::capi::icu4x_IsoDateTime_day_of_year_mv1(this->AsFFI()); - return result; -} - -inline uint32_t IsoDateTime::day_of_month() const { - auto result = diplomat::capi::icu4x_IsoDateTime_day_of_month_mv1(this->AsFFI()); - return result; -} - -inline IsoWeekday IsoDateTime::day_of_week() const { - auto result = diplomat::capi::icu4x_IsoDateTime_day_of_week_mv1(this->AsFFI()); - return IsoWeekday::FromFFI(result); -} - -inline uint32_t IsoDateTime::week_of_month(IsoWeekday first_weekday) const { - auto result = diplomat::capi::icu4x_IsoDateTime_week_of_month_mv1(this->AsFFI(), - first_weekday.AsFFI()); - return result; -} - -inline WeekOf IsoDateTime::week_of_year(const WeekCalculator& calculator) const { - auto result = diplomat::capi::icu4x_IsoDateTime_week_of_year_mv1(this->AsFFI(), - calculator.AsFFI()); - return WeekOf::FromFFI(result); -} - -inline uint32_t IsoDateTime::month() const { - auto result = diplomat::capi::icu4x_IsoDateTime_month_mv1(this->AsFFI()); - return result; -} - -inline int32_t IsoDateTime::year() const { - auto result = diplomat::capi::icu4x_IsoDateTime_year_mv1(this->AsFFI()); - return result; -} - -inline bool IsoDateTime::is_in_leap_year() const { - auto result = diplomat::capi::icu4x_IsoDateTime_is_in_leap_year_mv1(this->AsFFI()); - return result; -} - -inline uint8_t IsoDateTime::months_in_year() const { - auto result = diplomat::capi::icu4x_IsoDateTime_months_in_year_mv1(this->AsFFI()); - return result; -} - -inline uint8_t IsoDateTime::days_in_month() const { - auto result = diplomat::capi::icu4x_IsoDateTime_days_in_month_mv1(this->AsFFI()); - return result; -} - -inline uint16_t IsoDateTime::days_in_year() const { - auto result = diplomat::capi::icu4x_IsoDateTime_days_in_year_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::IsoDateTime* IsoDateTime::AsFFI() const { - return reinterpret_cast<const diplomat::capi::IsoDateTime*>(this); -} - -inline diplomat::capi::IsoDateTime* IsoDateTime::AsFFI() { - return reinterpret_cast<diplomat::capi::IsoDateTime*>(this); -} - -inline const IsoDateTime* IsoDateTime::FromFFI(const diplomat::capi::IsoDateTime* ptr) { - return reinterpret_cast<const IsoDateTime*>(ptr); -} - -inline IsoDateTime* IsoDateTime::FromFFI(diplomat::capi::IsoDateTime* ptr) { - return reinterpret_cast<IsoDateTime*>(ptr); -} - -inline void IsoDateTime::operator delete(void* ptr) { - diplomat::capi::icu4x_IsoDateTime_destroy_mv1(reinterpret_cast<diplomat::capi::IsoDateTime*>(ptr)); -} - - -#endif // IsoDateTime_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneFormat.hpp b/ffi/capi/bindings/cpp/IsoTimeZoneFormat.hpp deleted file mode 100644 index d3c2b655e69..00000000000 --- a/ffi/capi/bindings/cpp/IsoTimeZoneFormat.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef IsoTimeZoneFormat_HPP -#define IsoTimeZoneFormat_HPP - -#include "IsoTimeZoneFormat.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::IsoTimeZoneFormat IsoTimeZoneFormat::AsFFI() const { - return static_cast<diplomat::capi::IsoTimeZoneFormat>(value); -} - -inline IsoTimeZoneFormat IsoTimeZoneFormat::FromFFI(diplomat::capi::IsoTimeZoneFormat c_enum) { - switch (c_enum) { - case diplomat::capi::IsoTimeZoneFormat_Basic: - case diplomat::capi::IsoTimeZoneFormat_Extended: - case diplomat::capi::IsoTimeZoneFormat_UtcBasic: - case diplomat::capi::IsoTimeZoneFormat_UtcExtended: - return static_cast<IsoTimeZoneFormat::Value>(c_enum); - default: - abort(); - } -} -#endif // IsoTimeZoneFormat_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneMinuteDisplay.hpp b/ffi/capi/bindings/cpp/IsoTimeZoneMinuteDisplay.hpp deleted file mode 100644 index 37db3996f90..00000000000 --- a/ffi/capi/bindings/cpp/IsoTimeZoneMinuteDisplay.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef IsoTimeZoneMinuteDisplay_HPP -#define IsoTimeZoneMinuteDisplay_HPP - -#include "IsoTimeZoneMinuteDisplay.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::IsoTimeZoneMinuteDisplay IsoTimeZoneMinuteDisplay::AsFFI() const { - return static_cast<diplomat::capi::IsoTimeZoneMinuteDisplay>(value); -} - -inline IsoTimeZoneMinuteDisplay IsoTimeZoneMinuteDisplay::FromFFI(diplomat::capi::IsoTimeZoneMinuteDisplay c_enum) { - switch (c_enum) { - case diplomat::capi::IsoTimeZoneMinuteDisplay_Required: - case diplomat::capi::IsoTimeZoneMinuteDisplay_Optional: - return static_cast<IsoTimeZoneMinuteDisplay::Value>(c_enum); - default: - abort(); - } -} -#endif // IsoTimeZoneMinuteDisplay_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneOptions.d.hpp b/ffi/capi/bindings/cpp/IsoTimeZoneOptions.d.hpp deleted file mode 100644 index 6a1f7313237..00000000000 --- a/ffi/capi/bindings/cpp/IsoTimeZoneOptions.d.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef IsoTimeZoneOptions_D_HPP -#define IsoTimeZoneOptions_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "IsoTimeZoneFormat.d.hpp" -#include "IsoTimeZoneMinuteDisplay.d.hpp" -#include "IsoTimeZoneSecondDisplay.d.hpp" -#include "diplomat_runtime.hpp" - -class IsoTimeZoneFormat; -class IsoTimeZoneMinuteDisplay; -class IsoTimeZoneSecondDisplay; - - -namespace diplomat { -namespace capi { - struct IsoTimeZoneOptions { - diplomat::capi::IsoTimeZoneFormat format; - diplomat::capi::IsoTimeZoneMinuteDisplay minutes; - diplomat::capi::IsoTimeZoneSecondDisplay seconds; - }; -} // namespace capi -} // namespace - - -struct IsoTimeZoneOptions { - IsoTimeZoneFormat format; - IsoTimeZoneMinuteDisplay minutes; - IsoTimeZoneSecondDisplay seconds; - - inline diplomat::capi::IsoTimeZoneOptions AsFFI() const; - inline static IsoTimeZoneOptions FromFFI(diplomat::capi::IsoTimeZoneOptions c_struct); -}; - - -#endif // IsoTimeZoneOptions_D_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneOptions.hpp b/ffi/capi/bindings/cpp/IsoTimeZoneOptions.hpp deleted file mode 100644 index f2a804cafa6..00000000000 --- a/ffi/capi/bindings/cpp/IsoTimeZoneOptions.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef IsoTimeZoneOptions_HPP -#define IsoTimeZoneOptions_HPP - -#include "IsoTimeZoneOptions.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "IsoTimeZoneFormat.hpp" -#include "IsoTimeZoneMinuteDisplay.hpp" -#include "IsoTimeZoneSecondDisplay.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::IsoTimeZoneOptions IsoTimeZoneOptions::AsFFI() const { - return diplomat::capi::IsoTimeZoneOptions { - /* .format = */ format.AsFFI(), - /* .minutes = */ minutes.AsFFI(), - /* .seconds = */ seconds.AsFFI(), - }; -} - -inline IsoTimeZoneOptions IsoTimeZoneOptions::FromFFI(diplomat::capi::IsoTimeZoneOptions c_struct) { - return IsoTimeZoneOptions { - /* .format = */ IsoTimeZoneFormat::FromFFI(c_struct.format), - /* .minutes = */ IsoTimeZoneMinuteDisplay::FromFFI(c_struct.minutes), - /* .seconds = */ IsoTimeZoneSecondDisplay::FromFFI(c_struct.seconds), - }; -} - - -#endif // IsoTimeZoneOptions_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneSecondDisplay.hpp b/ffi/capi/bindings/cpp/IsoTimeZoneSecondDisplay.hpp deleted file mode 100644 index 5579c2a7ed6..00000000000 --- a/ffi/capi/bindings/cpp/IsoTimeZoneSecondDisplay.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef IsoTimeZoneSecondDisplay_HPP -#define IsoTimeZoneSecondDisplay_HPP - -#include "IsoTimeZoneSecondDisplay.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::IsoTimeZoneSecondDisplay IsoTimeZoneSecondDisplay::AsFFI() const { - return static_cast<diplomat::capi::IsoTimeZoneSecondDisplay>(value); -} - -inline IsoTimeZoneSecondDisplay IsoTimeZoneSecondDisplay::FromFFI(diplomat::capi::IsoTimeZoneSecondDisplay c_enum) { - switch (c_enum) { - case diplomat::capi::IsoTimeZoneSecondDisplay_Optional: - case diplomat::capi::IsoTimeZoneSecondDisplay_Never: - return static_cast<IsoTimeZoneSecondDisplay::Value>(c_enum); - default: - abort(); - } -} -#endif // IsoTimeZoneSecondDisplay_HPP diff --git a/ffi/capi/bindings/cpp/IsoWeekday.hpp b/ffi/capi/bindings/cpp/IsoWeekday.hpp deleted file mode 100644 index 946e4b46d09..00000000000 --- a/ffi/capi/bindings/cpp/IsoWeekday.hpp +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef IsoWeekday_HPP -#define IsoWeekday_HPP - -#include "IsoWeekday.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::IsoWeekday IsoWeekday::AsFFI() const { - return static_cast<diplomat::capi::IsoWeekday>(value); -} - -inline IsoWeekday IsoWeekday::FromFFI(diplomat::capi::IsoWeekday c_enum) { - switch (c_enum) { - case diplomat::capi::IsoWeekday_Monday: - case diplomat::capi::IsoWeekday_Tuesday: - case diplomat::capi::IsoWeekday_Wednesday: - case diplomat::capi::IsoWeekday_Thursday: - case diplomat::capi::IsoWeekday_Friday: - case diplomat::capi::IsoWeekday_Saturday: - case diplomat::capi::IsoWeekday_Sunday: - return static_cast<IsoWeekday::Value>(c_enum); - default: - abort(); - } -} -#endif // IsoWeekday_HPP diff --git a/ffi/capi/bindings/cpp/LanguageDisplay.hpp b/ffi/capi/bindings/cpp/LanguageDisplay.hpp deleted file mode 100644 index ba1dc93daeb..00000000000 --- a/ffi/capi/bindings/cpp/LanguageDisplay.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef LanguageDisplay_HPP -#define LanguageDisplay_HPP - -#include "LanguageDisplay.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LanguageDisplay LanguageDisplay::AsFFI() const { - return static_cast<diplomat::capi::LanguageDisplay>(value); -} - -inline LanguageDisplay LanguageDisplay::FromFFI(diplomat::capi::LanguageDisplay c_enum) { - switch (c_enum) { - case diplomat::capi::LanguageDisplay_Dialect: - case diplomat::capi::LanguageDisplay_Standard: - return static_cast<LanguageDisplay::Value>(c_enum); - default: - abort(); - } -} -#endif // LanguageDisplay_HPP diff --git a/ffi/capi/bindings/cpp/LeadingAdjustment.hpp b/ffi/capi/bindings/cpp/LeadingAdjustment.hpp deleted file mode 100644 index 2c7ae24e1a2..00000000000 --- a/ffi/capi/bindings/cpp/LeadingAdjustment.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef LeadingAdjustment_HPP -#define LeadingAdjustment_HPP - -#include "LeadingAdjustment.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LeadingAdjustment LeadingAdjustment::AsFFI() const { - return static_cast<diplomat::capi::LeadingAdjustment>(value); -} - -inline LeadingAdjustment LeadingAdjustment::FromFFI(diplomat::capi::LeadingAdjustment c_enum) { - switch (c_enum) { - case diplomat::capi::LeadingAdjustment_Auto: - case diplomat::capi::LeadingAdjustment_None: - case diplomat::capi::LeadingAdjustment_ToCased: - return static_cast<LeadingAdjustment::Value>(c_enum); - default: - abort(); - } -} -#endif // LeadingAdjustment_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/LineBreakIteratorLatin1.d.hpp deleted file mode 100644 index 08f91b3ed66..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakIteratorLatin1.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef LineBreakIteratorLatin1_D_HPP -#define LineBreakIteratorLatin1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct LineBreakIteratorLatin1; -} // namespace capi -} // namespace - -class LineBreakIteratorLatin1 { -public: - - inline int32_t next(); - - inline const diplomat::capi::LineBreakIteratorLatin1* AsFFI() const; - inline diplomat::capi::LineBreakIteratorLatin1* AsFFI(); - inline static const LineBreakIteratorLatin1* FromFFI(const diplomat::capi::LineBreakIteratorLatin1* ptr); - inline static LineBreakIteratorLatin1* FromFFI(diplomat::capi::LineBreakIteratorLatin1* ptr); - inline static void operator delete(void* ptr); -private: - LineBreakIteratorLatin1() = delete; - LineBreakIteratorLatin1(const LineBreakIteratorLatin1&) = delete; - LineBreakIteratorLatin1(LineBreakIteratorLatin1&&) noexcept = delete; - LineBreakIteratorLatin1 operator=(const LineBreakIteratorLatin1&) = delete; - LineBreakIteratorLatin1 operator=(LineBreakIteratorLatin1&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LineBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/LineBreakIteratorLatin1.hpp deleted file mode 100644 index 4528457798d..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakIteratorLatin1.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef LineBreakIteratorLatin1_HPP -#define LineBreakIteratorLatin1_HPP - -#include "LineBreakIteratorLatin1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_LineBreakIteratorLatin1_next_mv1(diplomat::capi::LineBreakIteratorLatin1* self); - - - void icu4x_LineBreakIteratorLatin1_destroy_mv1(LineBreakIteratorLatin1* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t LineBreakIteratorLatin1::next() { - auto result = diplomat::capi::icu4x_LineBreakIteratorLatin1_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::LineBreakIteratorLatin1* LineBreakIteratorLatin1::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LineBreakIteratorLatin1*>(this); -} - -inline diplomat::capi::LineBreakIteratorLatin1* LineBreakIteratorLatin1::AsFFI() { - return reinterpret_cast<diplomat::capi::LineBreakIteratorLatin1*>(this); -} - -inline const LineBreakIteratorLatin1* LineBreakIteratorLatin1::FromFFI(const diplomat::capi::LineBreakIteratorLatin1* ptr) { - return reinterpret_cast<const LineBreakIteratorLatin1*>(ptr); -} - -inline LineBreakIteratorLatin1* LineBreakIteratorLatin1::FromFFI(diplomat::capi::LineBreakIteratorLatin1* ptr) { - return reinterpret_cast<LineBreakIteratorLatin1*>(ptr); -} - -inline void LineBreakIteratorLatin1::operator delete(void* ptr) { - diplomat::capi::icu4x_LineBreakIteratorLatin1_destroy_mv1(reinterpret_cast<diplomat::capi::LineBreakIteratorLatin1*>(ptr)); -} - - -#endif // LineBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/LineBreakIteratorUtf16.d.hpp deleted file mode 100644 index b37ad8f586a..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakIteratorUtf16.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef LineBreakIteratorUtf16_D_HPP -#define LineBreakIteratorUtf16_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct LineBreakIteratorUtf16; -} // namespace capi -} // namespace - -class LineBreakIteratorUtf16 { -public: - - inline int32_t next(); - - inline const diplomat::capi::LineBreakIteratorUtf16* AsFFI() const; - inline diplomat::capi::LineBreakIteratorUtf16* AsFFI(); - inline static const LineBreakIteratorUtf16* FromFFI(const diplomat::capi::LineBreakIteratorUtf16* ptr); - inline static LineBreakIteratorUtf16* FromFFI(diplomat::capi::LineBreakIteratorUtf16* ptr); - inline static void operator delete(void* ptr); -private: - LineBreakIteratorUtf16() = delete; - LineBreakIteratorUtf16(const LineBreakIteratorUtf16&) = delete; - LineBreakIteratorUtf16(LineBreakIteratorUtf16&&) noexcept = delete; - LineBreakIteratorUtf16 operator=(const LineBreakIteratorUtf16&) = delete; - LineBreakIteratorUtf16 operator=(LineBreakIteratorUtf16&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LineBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/LineBreakIteratorUtf16.hpp deleted file mode 100644 index 31e69ffd468..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakIteratorUtf16.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef LineBreakIteratorUtf16_HPP -#define LineBreakIteratorUtf16_HPP - -#include "LineBreakIteratorUtf16.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_LineBreakIteratorUtf16_next_mv1(diplomat::capi::LineBreakIteratorUtf16* self); - - - void icu4x_LineBreakIteratorUtf16_destroy_mv1(LineBreakIteratorUtf16* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t LineBreakIteratorUtf16::next() { - auto result = diplomat::capi::icu4x_LineBreakIteratorUtf16_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::LineBreakIteratorUtf16* LineBreakIteratorUtf16::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LineBreakIteratorUtf16*>(this); -} - -inline diplomat::capi::LineBreakIteratorUtf16* LineBreakIteratorUtf16::AsFFI() { - return reinterpret_cast<diplomat::capi::LineBreakIteratorUtf16*>(this); -} - -inline const LineBreakIteratorUtf16* LineBreakIteratorUtf16::FromFFI(const diplomat::capi::LineBreakIteratorUtf16* ptr) { - return reinterpret_cast<const LineBreakIteratorUtf16*>(ptr); -} - -inline LineBreakIteratorUtf16* LineBreakIteratorUtf16::FromFFI(diplomat::capi::LineBreakIteratorUtf16* ptr) { - return reinterpret_cast<LineBreakIteratorUtf16*>(ptr); -} - -inline void LineBreakIteratorUtf16::operator delete(void* ptr) { - diplomat::capi::icu4x_LineBreakIteratorUtf16_destroy_mv1(reinterpret_cast<diplomat::capi::LineBreakIteratorUtf16*>(ptr)); -} - - -#endif // LineBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/LineBreakIteratorUtf8.d.hpp deleted file mode 100644 index 1ab19005434..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakIteratorUtf8.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef LineBreakIteratorUtf8_D_HPP -#define LineBreakIteratorUtf8_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct LineBreakIteratorUtf8; -} // namespace capi -} // namespace - -class LineBreakIteratorUtf8 { -public: - - inline int32_t next(); - - inline const diplomat::capi::LineBreakIteratorUtf8* AsFFI() const; - inline diplomat::capi::LineBreakIteratorUtf8* AsFFI(); - inline static const LineBreakIteratorUtf8* FromFFI(const diplomat::capi::LineBreakIteratorUtf8* ptr); - inline static LineBreakIteratorUtf8* FromFFI(diplomat::capi::LineBreakIteratorUtf8* ptr); - inline static void operator delete(void* ptr); -private: - LineBreakIteratorUtf8() = delete; - LineBreakIteratorUtf8(const LineBreakIteratorUtf8&) = delete; - LineBreakIteratorUtf8(LineBreakIteratorUtf8&&) noexcept = delete; - LineBreakIteratorUtf8 operator=(const LineBreakIteratorUtf8&) = delete; - LineBreakIteratorUtf8 operator=(LineBreakIteratorUtf8&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LineBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/LineBreakIteratorUtf8.hpp deleted file mode 100644 index b1183275b84..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakIteratorUtf8.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef LineBreakIteratorUtf8_HPP -#define LineBreakIteratorUtf8_HPP - -#include "LineBreakIteratorUtf8.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_LineBreakIteratorUtf8_next_mv1(diplomat::capi::LineBreakIteratorUtf8* self); - - - void icu4x_LineBreakIteratorUtf8_destroy_mv1(LineBreakIteratorUtf8* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t LineBreakIteratorUtf8::next() { - auto result = diplomat::capi::icu4x_LineBreakIteratorUtf8_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::LineBreakIteratorUtf8* LineBreakIteratorUtf8::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LineBreakIteratorUtf8*>(this); -} - -inline diplomat::capi::LineBreakIteratorUtf8* LineBreakIteratorUtf8::AsFFI() { - return reinterpret_cast<diplomat::capi::LineBreakIteratorUtf8*>(this); -} - -inline const LineBreakIteratorUtf8* LineBreakIteratorUtf8::FromFFI(const diplomat::capi::LineBreakIteratorUtf8* ptr) { - return reinterpret_cast<const LineBreakIteratorUtf8*>(ptr); -} - -inline LineBreakIteratorUtf8* LineBreakIteratorUtf8::FromFFI(diplomat::capi::LineBreakIteratorUtf8* ptr) { - return reinterpret_cast<LineBreakIteratorUtf8*>(ptr); -} - -inline void LineBreakIteratorUtf8::operator delete(void* ptr) { - diplomat::capi::icu4x_LineBreakIteratorUtf8_destroy_mv1(reinterpret_cast<diplomat::capi::LineBreakIteratorUtf8*>(ptr)); -} - - -#endif // LineBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakOptionsV1.d.hpp b/ffi/capi/bindings/cpp/LineBreakOptionsV1.d.hpp deleted file mode 100644 index c223ec62a94..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakOptionsV1.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef LineBreakOptionsV1_D_HPP -#define LineBreakOptionsV1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "LineBreakStrictness.d.hpp" -#include "LineBreakWordOption.d.hpp" -#include "diplomat_runtime.hpp" - -class LineBreakStrictness; -class LineBreakWordOption; - - -namespace diplomat { -namespace capi { - struct LineBreakOptionsV1 { - diplomat::capi::LineBreakStrictness strictness; - diplomat::capi::LineBreakWordOption word_option; - bool ja_zh; - }; -} // namespace capi -} // namespace - - -struct LineBreakOptionsV1 { - LineBreakStrictness strictness; - LineBreakWordOption word_option; - bool ja_zh; - - inline diplomat::capi::LineBreakOptionsV1 AsFFI() const; - inline static LineBreakOptionsV1 FromFFI(diplomat::capi::LineBreakOptionsV1 c_struct); -}; - - -#endif // LineBreakOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakOptionsV1.hpp b/ffi/capi/bindings/cpp/LineBreakOptionsV1.hpp deleted file mode 100644 index e7fa6c4370c..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakOptionsV1.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef LineBreakOptionsV1_HPP -#define LineBreakOptionsV1_HPP - -#include "LineBreakOptionsV1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "LineBreakStrictness.hpp" -#include "LineBreakWordOption.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::LineBreakOptionsV1 LineBreakOptionsV1::AsFFI() const { - return diplomat::capi::LineBreakOptionsV1 { - /* .strictness = */ strictness.AsFFI(), - /* .word_option = */ word_option.AsFFI(), - /* .ja_zh = */ ja_zh, - }; -} - -inline LineBreakOptionsV1 LineBreakOptionsV1::FromFFI(diplomat::capi::LineBreakOptionsV1 c_struct) { - return LineBreakOptionsV1 { - /* .strictness = */ LineBreakStrictness::FromFFI(c_struct.strictness), - /* .word_option = */ LineBreakWordOption::FromFFI(c_struct.word_option), - /* .ja_zh = */ c_struct.ja_zh, - }; -} - - -#endif // LineBreakOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakStrictness.hpp b/ffi/capi/bindings/cpp/LineBreakStrictness.hpp deleted file mode 100644 index cd254e82623..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakStrictness.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef LineBreakStrictness_HPP -#define LineBreakStrictness_HPP - -#include "LineBreakStrictness.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LineBreakStrictness LineBreakStrictness::AsFFI() const { - return static_cast<diplomat::capi::LineBreakStrictness>(value); -} - -inline LineBreakStrictness LineBreakStrictness::FromFFI(diplomat::capi::LineBreakStrictness c_enum) { - switch (c_enum) { - case diplomat::capi::LineBreakStrictness_Loose: - case diplomat::capi::LineBreakStrictness_Normal: - case diplomat::capi::LineBreakStrictness_Strict: - case diplomat::capi::LineBreakStrictness_Anywhere: - return static_cast<LineBreakStrictness::Value>(c_enum); - default: - abort(); - } -} -#endif // LineBreakStrictness_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakWordOption.hpp b/ffi/capi/bindings/cpp/LineBreakWordOption.hpp deleted file mode 100644 index 79ded380d48..00000000000 --- a/ffi/capi/bindings/cpp/LineBreakWordOption.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef LineBreakWordOption_HPP -#define LineBreakWordOption_HPP - -#include "LineBreakWordOption.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LineBreakWordOption LineBreakWordOption::AsFFI() const { - return static_cast<diplomat::capi::LineBreakWordOption>(value); -} - -inline LineBreakWordOption LineBreakWordOption::FromFFI(diplomat::capi::LineBreakWordOption c_enum) { - switch (c_enum) { - case diplomat::capi::LineBreakWordOption_Normal: - case diplomat::capi::LineBreakWordOption_BreakAll: - case diplomat::capi::LineBreakWordOption_KeepAll: - return static_cast<LineBreakWordOption::Value>(c_enum); - default: - abort(); - } -} -#endif // LineBreakWordOption_HPP diff --git a/ffi/capi/bindings/cpp/LineSegmenter.d.hpp b/ffi/capi/bindings/cpp/LineSegmenter.d.hpp deleted file mode 100644 index c11d5fd1437..00000000000 --- a/ffi/capi/bindings/cpp/LineSegmenter.d.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef LineSegmenter_D_HPP -#define LineSegmenter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct LineBreakIteratorLatin1; } -class LineBreakIteratorLatin1; -namespace diplomat::capi { struct LineBreakIteratorUtf16; } -class LineBreakIteratorUtf16; -namespace diplomat::capi { struct LineBreakIteratorUtf8; } -class LineBreakIteratorUtf8; -struct LineBreakOptionsV1; -class DataError; - - -namespace diplomat { -namespace capi { - struct LineSegmenter; -} // namespace capi -} // namespace - -class LineSegmenter { -public: - - inline static diplomat::result<std::unique_ptr<LineSegmenter>, DataError> create_auto(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<LineSegmenter>, DataError> create_lstm(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<LineSegmenter>, DataError> create_dictionary(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<LineSegmenter>, DataError> create_auto_with_options_v1(const DataProvider& provider, LineBreakOptionsV1 options); - - inline static diplomat::result<std::unique_ptr<LineSegmenter>, DataError> create_lstm_with_options_v1(const DataProvider& provider, LineBreakOptionsV1 options); - - inline static diplomat::result<std::unique_ptr<LineSegmenter>, DataError> create_dictionary_with_options_v1(const DataProvider& provider, LineBreakOptionsV1 options); - - inline std::unique_ptr<LineBreakIteratorUtf8> segment(std::string_view input) const; - - inline std::unique_ptr<LineBreakIteratorUtf16> segment16(std::u16string_view input) const; - - inline std::unique_ptr<LineBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; - - inline const diplomat::capi::LineSegmenter* AsFFI() const; - inline diplomat::capi::LineSegmenter* AsFFI(); - inline static const LineSegmenter* FromFFI(const diplomat::capi::LineSegmenter* ptr); - inline static LineSegmenter* FromFFI(diplomat::capi::LineSegmenter* ptr); - inline static void operator delete(void* ptr); -private: - LineSegmenter() = delete; - LineSegmenter(const LineSegmenter&) = delete; - LineSegmenter(LineSegmenter&&) noexcept = delete; - LineSegmenter operator=(const LineSegmenter&) = delete; - LineSegmenter operator=(LineSegmenter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LineSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/LineSegmenter.hpp b/ffi/capi/bindings/cpp/LineSegmenter.hpp deleted file mode 100644 index 024688a8db5..00000000000 --- a/ffi/capi/bindings/cpp/LineSegmenter.hpp +++ /dev/null @@ -1,131 +0,0 @@ -#ifndef LineSegmenter_HPP -#define LineSegmenter_HPP - -#include "LineSegmenter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "LineBreakIteratorLatin1.hpp" -#include "LineBreakIteratorUtf16.hpp" -#include "LineBreakIteratorUtf8.hpp" -#include "LineBreakOptionsV1.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_LineSegmenter_create_auto_mv1_result {union {diplomat::capi::LineSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_auto_mv1_result; - icu4x_LineSegmenter_create_auto_mv1_result icu4x_LineSegmenter_create_auto_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_LineSegmenter_create_lstm_mv1_result {union {diplomat::capi::LineSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_lstm_mv1_result; - icu4x_LineSegmenter_create_lstm_mv1_result icu4x_LineSegmenter_create_lstm_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_LineSegmenter_create_dictionary_mv1_result {union {diplomat::capi::LineSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_dictionary_mv1_result; - icu4x_LineSegmenter_create_dictionary_mv1_result icu4x_LineSegmenter_create_dictionary_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_LineSegmenter_create_auto_with_options_v1_mv1_result {union {diplomat::capi::LineSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_auto_with_options_v1_mv1_result; - icu4x_LineSegmenter_create_auto_with_options_v1_mv1_result icu4x_LineSegmenter_create_auto_with_options_v1_mv1(const diplomat::capi::DataProvider* provider, diplomat::capi::LineBreakOptionsV1 options); - - typedef struct icu4x_LineSegmenter_create_lstm_with_options_v1_mv1_result {union {diplomat::capi::LineSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_lstm_with_options_v1_mv1_result; - icu4x_LineSegmenter_create_lstm_with_options_v1_mv1_result icu4x_LineSegmenter_create_lstm_with_options_v1_mv1(const diplomat::capi::DataProvider* provider, diplomat::capi::LineBreakOptionsV1 options); - - typedef struct icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1_result {union {diplomat::capi::LineSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1_result; - icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1_result icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1(const diplomat::capi::DataProvider* provider, diplomat::capi::LineBreakOptionsV1 options); - - diplomat::capi::LineBreakIteratorUtf8* icu4x_LineSegmenter_segment_utf8_mv1(const diplomat::capi::LineSegmenter* self, const char* input_data, size_t input_len); - - diplomat::capi::LineBreakIteratorUtf16* icu4x_LineSegmenter_segment_utf16_mv1(const diplomat::capi::LineSegmenter* self, const char16_t* input_data, size_t input_len); - - diplomat::capi::LineBreakIteratorLatin1* icu4x_LineSegmenter_segment_latin1_mv1(const diplomat::capi::LineSegmenter* self, const uint8_t* input_data, size_t input_len); - - - void icu4x_LineSegmenter_destroy_mv1(LineSegmenter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<LineSegmenter>, DataError> LineSegmenter::create_auto(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LineSegmenter_create_auto_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<LineSegmenter>>(std::unique_ptr<LineSegmenter>(LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LineSegmenter>, DataError> LineSegmenter::create_lstm(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LineSegmenter_create_lstm_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<LineSegmenter>>(std::unique_ptr<LineSegmenter>(LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LineSegmenter>, DataError> LineSegmenter::create_dictionary(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LineSegmenter_create_dictionary_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<LineSegmenter>>(std::unique_ptr<LineSegmenter>(LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LineSegmenter>, DataError> LineSegmenter::create_auto_with_options_v1(const DataProvider& provider, LineBreakOptionsV1 options) { - auto result = diplomat::capi::icu4x_LineSegmenter_create_auto_with_options_v1_mv1(provider.AsFFI(), - options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<LineSegmenter>>(std::unique_ptr<LineSegmenter>(LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LineSegmenter>, DataError> LineSegmenter::create_lstm_with_options_v1(const DataProvider& provider, LineBreakOptionsV1 options) { - auto result = diplomat::capi::icu4x_LineSegmenter_create_lstm_with_options_v1_mv1(provider.AsFFI(), - options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<LineSegmenter>>(std::unique_ptr<LineSegmenter>(LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LineSegmenter>, DataError> LineSegmenter::create_dictionary_with_options_v1(const DataProvider& provider, LineBreakOptionsV1 options) { - auto result = diplomat::capi::icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1(provider.AsFFI(), - options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<LineSegmenter>>(std::unique_ptr<LineSegmenter>(LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LineSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<LineBreakIteratorUtf8> LineSegmenter::segment(std::string_view input) const { - auto result = diplomat::capi::icu4x_LineSegmenter_segment_utf8_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<LineBreakIteratorUtf8>(LineBreakIteratorUtf8::FromFFI(result)); -} - -inline std::unique_ptr<LineBreakIteratorUtf16> LineSegmenter::segment16(std::u16string_view input) const { - auto result = diplomat::capi::icu4x_LineSegmenter_segment_utf16_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<LineBreakIteratorUtf16>(LineBreakIteratorUtf16::FromFFI(result)); -} - -inline std::unique_ptr<LineBreakIteratorLatin1> LineSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { - auto result = diplomat::capi::icu4x_LineSegmenter_segment_latin1_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<LineBreakIteratorLatin1>(LineBreakIteratorLatin1::FromFFI(result)); -} - -inline const diplomat::capi::LineSegmenter* LineSegmenter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LineSegmenter*>(this); -} - -inline diplomat::capi::LineSegmenter* LineSegmenter::AsFFI() { - return reinterpret_cast<diplomat::capi::LineSegmenter*>(this); -} - -inline const LineSegmenter* LineSegmenter::FromFFI(const diplomat::capi::LineSegmenter* ptr) { - return reinterpret_cast<const LineSegmenter*>(ptr); -} - -inline LineSegmenter* LineSegmenter::FromFFI(diplomat::capi::LineSegmenter* ptr) { - return reinterpret_cast<LineSegmenter*>(ptr); -} - -inline void LineSegmenter::operator delete(void* ptr) { - diplomat::capi::icu4x_LineSegmenter_destroy_mv1(reinterpret_cast<diplomat::capi::LineSegmenter*>(ptr)); -} - - -#endif // LineSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/ListFormatter.d.hpp b/ffi/capi/bindings/cpp/ListFormatter.d.hpp deleted file mode 100644 index 97831ba1fb5..00000000000 --- a/ffi/capi/bindings/cpp/ListFormatter.d.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef ListFormatter_D_HPP -#define ListFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -class DataError; -class ListLength; - - -namespace diplomat { -namespace capi { - struct ListFormatter; -} // namespace capi -} // namespace - -class ListFormatter { -public: - - inline static diplomat::result<std::unique_ptr<ListFormatter>, DataError> create_and_with_length(const DataProvider& provider, const Locale& locale, ListLength length); - - inline static diplomat::result<std::unique_ptr<ListFormatter>, DataError> create_or_with_length(const DataProvider& provider, const Locale& locale, ListLength length); - - inline static diplomat::result<std::unique_ptr<ListFormatter>, DataError> create_unit_with_length(const DataProvider& provider, const Locale& locale, ListLength length); - - inline std::string format(diplomat::span<const std::string_view> list) const; - - inline std::string format16(diplomat::span<const std::u16string_view> list) const; - - inline const diplomat::capi::ListFormatter* AsFFI() const; - inline diplomat::capi::ListFormatter* AsFFI(); - inline static const ListFormatter* FromFFI(const diplomat::capi::ListFormatter* ptr); - inline static ListFormatter* FromFFI(diplomat::capi::ListFormatter* ptr); - inline static void operator delete(void* ptr); -private: - ListFormatter() = delete; - ListFormatter(const ListFormatter&) = delete; - ListFormatter(ListFormatter&&) noexcept = delete; - ListFormatter operator=(const ListFormatter&) = delete; - ListFormatter operator=(ListFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // ListFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/ListFormatter.hpp b/ffi/capi/bindings/cpp/ListFormatter.hpp deleted file mode 100644 index e8d3125e393..00000000000 --- a/ffi/capi/bindings/cpp/ListFormatter.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef ListFormatter_HPP -#define ListFormatter_HPP - -#include "ListFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "ListLength.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_ListFormatter_create_and_with_length_mv1_result {union {diplomat::capi::ListFormatter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_mv1_result; - icu4x_ListFormatter_create_and_with_length_mv1_result icu4x_ListFormatter_create_and_with_length_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::ListLength length); - - typedef struct icu4x_ListFormatter_create_or_with_length_mv1_result {union {diplomat::capi::ListFormatter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_mv1_result; - icu4x_ListFormatter_create_or_with_length_mv1_result icu4x_ListFormatter_create_or_with_length_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::ListLength length); - - typedef struct icu4x_ListFormatter_create_unit_with_length_mv1_result {union {diplomat::capi::ListFormatter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_mv1_result; - icu4x_ListFormatter_create_unit_with_length_mv1_result icu4x_ListFormatter_create_unit_with_length_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::ListLength length); - - void icu4x_ListFormatter_format_utf8_mv1(const diplomat::capi::ListFormatter* self, diplomat::capi::DiplomatStringsView* list_data, size_t list_len, diplomat::capi::DiplomatWrite* write); - - void icu4x_ListFormatter_format_utf16_mv1(const diplomat::capi::ListFormatter* self, diplomat::capi::DiplomatStrings16View* list_data, size_t list_len, diplomat::capi::DiplomatWrite* write); - - - void icu4x_ListFormatter_destroy_mv1(ListFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<ListFormatter>, DataError> ListFormatter::create_and_with_length(const DataProvider& provider, const Locale& locale, ListLength length) { - auto result = diplomat::capi::icu4x_ListFormatter_create_and_with_length_mv1(provider.AsFFI(), - locale.AsFFI(), - length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ListFormatter>, DataError>(diplomat::Ok<std::unique_ptr<ListFormatter>>(std::unique_ptr<ListFormatter>(ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ListFormatter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<ListFormatter>, DataError> ListFormatter::create_or_with_length(const DataProvider& provider, const Locale& locale, ListLength length) { - auto result = diplomat::capi::icu4x_ListFormatter_create_or_with_length_mv1(provider.AsFFI(), - locale.AsFFI(), - length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ListFormatter>, DataError>(diplomat::Ok<std::unique_ptr<ListFormatter>>(std::unique_ptr<ListFormatter>(ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ListFormatter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<ListFormatter>, DataError> ListFormatter::create_unit_with_length(const DataProvider& provider, const Locale& locale, ListLength length) { - auto result = diplomat::capi::icu4x_ListFormatter_create_unit_with_length_mv1(provider.AsFFI(), - locale.AsFFI(), - length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ListFormatter>, DataError>(diplomat::Ok<std::unique_ptr<ListFormatter>>(std::unique_ptr<ListFormatter>(ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ListFormatter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::string ListFormatter::format(diplomat::span<const std::string_view> list) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_ListFormatter_format_utf8_mv1(this->AsFFI(), - list.data(), - list.size(), - &write); - return output; -} - -inline std::string ListFormatter::format16(diplomat::span<const std::u16string_view> list) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_ListFormatter_format_utf16_mv1(this->AsFFI(), - list.data(), - list.size(), - &write); - return output; -} - -inline const diplomat::capi::ListFormatter* ListFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::ListFormatter*>(this); -} - -inline diplomat::capi::ListFormatter* ListFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::ListFormatter*>(this); -} - -inline const ListFormatter* ListFormatter::FromFFI(const diplomat::capi::ListFormatter* ptr) { - return reinterpret_cast<const ListFormatter*>(ptr); -} - -inline ListFormatter* ListFormatter::FromFFI(diplomat::capi::ListFormatter* ptr) { - return reinterpret_cast<ListFormatter*>(ptr); -} - -inline void ListFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_ListFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::ListFormatter*>(ptr)); -} - - -#endif // ListFormatter_HPP diff --git a/ffi/capi/bindings/cpp/ListLength.hpp b/ffi/capi/bindings/cpp/ListLength.hpp deleted file mode 100644 index 53a18125a16..00000000000 --- a/ffi/capi/bindings/cpp/ListLength.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef ListLength_HPP -#define ListLength_HPP - -#include "ListLength.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::ListLength ListLength::AsFFI() const { - return static_cast<diplomat::capi::ListLength>(value); -} - -inline ListLength ListLength::FromFFI(diplomat::capi::ListLength c_enum) { - switch (c_enum) { - case diplomat::capi::ListLength_Wide: - case diplomat::capi::ListLength_Short: - case diplomat::capi::ListLength_Narrow: - return static_cast<ListLength::Value>(c_enum); - default: - abort(); - } -} -#endif // ListLength_HPP diff --git a/ffi/capi/bindings/cpp/Locale.d.hpp b/ffi/capi/bindings/cpp/Locale.d.hpp deleted file mode 100644 index d672ddae4c8..00000000000 --- a/ffi/capi/bindings/cpp/Locale.d.hpp +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef Locale_D_HPP -#define Locale_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -class LocaleParseError; - - -namespace diplomat { -namespace capi { - struct Locale; -} // namespace capi -} // namespace - -class Locale { -public: - - inline static diplomat::result<std::unique_ptr<Locale>, LocaleParseError> from_string(std::string_view name); - - inline static std::unique_ptr<Locale> und(); - - inline std::unique_ptr<Locale> clone() const; - - inline std::string basename() const; - - inline std::optional<std::string> get_unicode_extension(std::string_view s) const; - - inline std::string language() const; - - inline diplomat::result<std::monostate, LocaleParseError> set_language(std::string_view s); - - inline std::optional<std::string> region() const; - - inline diplomat::result<std::monostate, LocaleParseError> set_region(std::string_view s); - - inline std::optional<std::string> script() const; - - inline diplomat::result<std::monostate, LocaleParseError> set_script(std::string_view s); - - inline static diplomat::result<std::string, LocaleParseError> canonicalize(std::string_view s); - - inline std::string to_string() const; - - inline bool normalizing_eq(std::string_view other) const; - - inline int8_t compare_to_string(std::string_view other) const; - - inline int8_t compare_to(const Locale& other) const; - - inline const diplomat::capi::Locale* AsFFI() const; - inline diplomat::capi::Locale* AsFFI(); - inline static const Locale* FromFFI(const diplomat::capi::Locale* ptr); - inline static Locale* FromFFI(diplomat::capi::Locale* ptr); - inline static void operator delete(void* ptr); -private: - Locale() = delete; - Locale(const Locale&) = delete; - Locale(Locale&&) noexcept = delete; - Locale operator=(const Locale&) = delete; - Locale operator=(Locale&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // Locale_D_HPP diff --git a/ffi/capi/bindings/cpp/Locale.hpp b/ffi/capi/bindings/cpp/Locale.hpp deleted file mode 100644 index 1fdc4fee867..00000000000 --- a/ffi/capi/bindings/cpp/Locale.hpp +++ /dev/null @@ -1,204 +0,0 @@ -#ifndef Locale_HPP -#define Locale_HPP - -#include "Locale.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "LocaleParseError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_Locale_from_string_mv1_result {union {diplomat::capi::Locale* ok; diplomat::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_from_string_mv1_result; - icu4x_Locale_from_string_mv1_result icu4x_Locale_from_string_mv1(const char* name_data, size_t name_len); - - diplomat::capi::Locale* icu4x_Locale_und_mv1(void); - - diplomat::capi::Locale* icu4x_Locale_clone_mv1(const diplomat::capi::Locale* self); - - void icu4x_Locale_basename_mv1(const diplomat::capi::Locale* self, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_Locale_get_unicode_extension_mv1_result { bool is_ok;} icu4x_Locale_get_unicode_extension_mv1_result; - icu4x_Locale_get_unicode_extension_mv1_result icu4x_Locale_get_unicode_extension_mv1(const diplomat::capi::Locale* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); - - void icu4x_Locale_language_mv1(const diplomat::capi::Locale* self, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_Locale_set_language_mv1_result {union { diplomat::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_language_mv1_result; - icu4x_Locale_set_language_mv1_result icu4x_Locale_set_language_mv1(diplomat::capi::Locale* self, const char* s_data, size_t s_len); - - typedef struct icu4x_Locale_region_mv1_result { bool is_ok;} icu4x_Locale_region_mv1_result; - icu4x_Locale_region_mv1_result icu4x_Locale_region_mv1(const diplomat::capi::Locale* self, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_Locale_set_region_mv1_result {union { diplomat::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_region_mv1_result; - icu4x_Locale_set_region_mv1_result icu4x_Locale_set_region_mv1(diplomat::capi::Locale* self, const char* s_data, size_t s_len); - - typedef struct icu4x_Locale_script_mv1_result { bool is_ok;} icu4x_Locale_script_mv1_result; - icu4x_Locale_script_mv1_result icu4x_Locale_script_mv1(const diplomat::capi::Locale* self, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_Locale_set_script_mv1_result {union { diplomat::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_script_mv1_result; - icu4x_Locale_set_script_mv1_result icu4x_Locale_set_script_mv1(diplomat::capi::Locale* self, const char* s_data, size_t s_len); - - typedef struct icu4x_Locale_canonicalize_mv1_result {union { diplomat::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_canonicalize_mv1_result; - icu4x_Locale_canonicalize_mv1_result icu4x_Locale_canonicalize_mv1(const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); - - void icu4x_Locale_to_string_mv1(const diplomat::capi::Locale* self, diplomat::capi::DiplomatWrite* write); - - bool icu4x_Locale_normalizing_eq_mv1(const diplomat::capi::Locale* self, const char* other_data, size_t other_len); - - int8_t icu4x_Locale_compare_to_string_mv1(const diplomat::capi::Locale* self, const char* other_data, size_t other_len); - - int8_t icu4x_Locale_compare_to_mv1(const diplomat::capi::Locale* self, const diplomat::capi::Locale* other); - - - void icu4x_Locale_destroy_mv1(Locale* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<Locale>, LocaleParseError> Locale::from_string(std::string_view name) { - auto result = diplomat::capi::icu4x_Locale_from_string_mv1(name.data(), - name.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<Locale>, LocaleParseError>(diplomat::Ok<std::unique_ptr<Locale>>(std::unique_ptr<Locale>(Locale::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Locale>, LocaleParseError>(diplomat::Err<LocaleParseError>(LocaleParseError::FromFFI(result.err))); -} - -inline std::unique_ptr<Locale> Locale::und() { - auto result = diplomat::capi::icu4x_Locale_und_mv1(); - return std::unique_ptr<Locale>(Locale::FromFFI(result)); -} - -inline std::unique_ptr<Locale> Locale::clone() const { - auto result = diplomat::capi::icu4x_Locale_clone_mv1(this->AsFFI()); - return std::unique_ptr<Locale>(Locale::FromFFI(result)); -} - -inline std::string Locale::basename() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_Locale_basename_mv1(this->AsFFI(), - &write); - return output; -} - -inline std::optional<std::string> Locale::get_unicode_extension(std::string_view s) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_Locale_get_unicode_extension_mv1(this->AsFFI(), - s.data(), - s.size(), - &write); - return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; -} - -inline std::string Locale::language() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_Locale_language_mv1(this->AsFFI(), - &write); - return output; -} - -inline diplomat::result<std::monostate, LocaleParseError> Locale::set_language(std::string_view s) { - auto result = diplomat::capi::icu4x_Locale_set_language_mv1(this->AsFFI(), - s.data(), - s.size()); - return result.is_ok ? diplomat::result<std::monostate, LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, LocaleParseError>(diplomat::Err<LocaleParseError>(LocaleParseError::FromFFI(result.err))); -} - -inline std::optional<std::string> Locale::region() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_Locale_region_mv1(this->AsFFI(), - &write); - return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; -} - -inline diplomat::result<std::monostate, LocaleParseError> Locale::set_region(std::string_view s) { - auto result = diplomat::capi::icu4x_Locale_set_region_mv1(this->AsFFI(), - s.data(), - s.size()); - return result.is_ok ? diplomat::result<std::monostate, LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, LocaleParseError>(diplomat::Err<LocaleParseError>(LocaleParseError::FromFFI(result.err))); -} - -inline std::optional<std::string> Locale::script() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_Locale_script_mv1(this->AsFFI(), - &write); - return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; -} - -inline diplomat::result<std::monostate, LocaleParseError> Locale::set_script(std::string_view s) { - auto result = diplomat::capi::icu4x_Locale_set_script_mv1(this->AsFFI(), - s.data(), - s.size()); - return result.is_ok ? diplomat::result<std::monostate, LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, LocaleParseError>(diplomat::Err<LocaleParseError>(LocaleParseError::FromFFI(result.err))); -} - -inline diplomat::result<std::string, LocaleParseError> Locale::canonicalize(std::string_view s) { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_Locale_canonicalize_mv1(s.data(), - s.size(), - &write); - return result.is_ok ? diplomat::result<std::string, LocaleParseError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, LocaleParseError>(diplomat::Err<LocaleParseError>(LocaleParseError::FromFFI(result.err))); -} - -inline std::string Locale::to_string() const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_Locale_to_string_mv1(this->AsFFI(), - &write); - return output; -} - -inline bool Locale::normalizing_eq(std::string_view other) const { - auto result = diplomat::capi::icu4x_Locale_normalizing_eq_mv1(this->AsFFI(), - other.data(), - other.size()); - return result; -} - -inline int8_t Locale::compare_to_string(std::string_view other) const { - auto result = diplomat::capi::icu4x_Locale_compare_to_string_mv1(this->AsFFI(), - other.data(), - other.size()); - return result; -} - -inline int8_t Locale::compare_to(const Locale& other) const { - auto result = diplomat::capi::icu4x_Locale_compare_to_mv1(this->AsFFI(), - other.AsFFI()); - return result; -} - -inline const diplomat::capi::Locale* Locale::AsFFI() const { - return reinterpret_cast<const diplomat::capi::Locale*>(this); -} - -inline diplomat::capi::Locale* Locale::AsFFI() { - return reinterpret_cast<diplomat::capi::Locale*>(this); -} - -inline const Locale* Locale::FromFFI(const diplomat::capi::Locale* ptr) { - return reinterpret_cast<const Locale*>(ptr); -} - -inline Locale* Locale::FromFFI(diplomat::capi::Locale* ptr) { - return reinterpret_cast<Locale*>(ptr); -} - -inline void Locale::operator delete(void* ptr) { - diplomat::capi::icu4x_Locale_destroy_mv1(reinterpret_cast<diplomat::capi::Locale*>(ptr)); -} - - -#endif // Locale_HPP diff --git a/ffi/capi/bindings/cpp/LocaleCanonicalizer.d.hpp b/ffi/capi/bindings/cpp/LocaleCanonicalizer.d.hpp deleted file mode 100644 index fb63599cdcf..00000000000 --- a/ffi/capi/bindings/cpp/LocaleCanonicalizer.d.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef LocaleCanonicalizer_D_HPP -#define LocaleCanonicalizer_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -class Error; -class TransformResult; - - -namespace diplomat { -namespace capi { - struct LocaleCanonicalizer; -} // namespace capi -} // namespace - -class LocaleCanonicalizer { -public: - - inline static diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error> create(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error> create_extended(const DataProvider& provider); - - inline TransformResult canonicalize(Locale& locale) const; - - inline const diplomat::capi::LocaleCanonicalizer* AsFFI() const; - inline diplomat::capi::LocaleCanonicalizer* AsFFI(); - inline static const LocaleCanonicalizer* FromFFI(const diplomat::capi::LocaleCanonicalizer* ptr); - inline static LocaleCanonicalizer* FromFFI(diplomat::capi::LocaleCanonicalizer* ptr); - inline static void operator delete(void* ptr); -private: - LocaleCanonicalizer() = delete; - LocaleCanonicalizer(const LocaleCanonicalizer&) = delete; - LocaleCanonicalizer(LocaleCanonicalizer&&) noexcept = delete; - LocaleCanonicalizer operator=(const LocaleCanonicalizer&) = delete; - LocaleCanonicalizer operator=(LocaleCanonicalizer&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LocaleCanonicalizer_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleCanonicalizer.hpp b/ffi/capi/bindings/cpp/LocaleCanonicalizer.hpp deleted file mode 100644 index 4acc5243f46..00000000000 --- a/ffi/capi/bindings/cpp/LocaleCanonicalizer.hpp +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef LocaleCanonicalizer_HPP -#define LocaleCanonicalizer_HPP - -#include "LocaleCanonicalizer.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataProvider.hpp" -#include "Error.hpp" -#include "Locale.hpp" -#include "TransformResult.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_LocaleCanonicalizer_create_mv1_result {union {diplomat::capi::LocaleCanonicalizer* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_mv1_result; - icu4x_LocaleCanonicalizer_create_mv1_result icu4x_LocaleCanonicalizer_create_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_LocaleCanonicalizer_create_extended_mv1_result {union {diplomat::capi::LocaleCanonicalizer* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_extended_mv1_result; - icu4x_LocaleCanonicalizer_create_extended_mv1_result icu4x_LocaleCanonicalizer_create_extended_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::TransformResult icu4x_LocaleCanonicalizer_canonicalize_mv1(const diplomat::capi::LocaleCanonicalizer* self, diplomat::capi::Locale* locale); - - - void icu4x_LocaleCanonicalizer_destroy_mv1(LocaleCanonicalizer* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error> LocaleCanonicalizer::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LocaleCanonicalizer_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error>(diplomat::Ok<std::unique_ptr<LocaleCanonicalizer>>(std::unique_ptr<LocaleCanonicalizer>(LocaleCanonicalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error> LocaleCanonicalizer::create_extended(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LocaleCanonicalizer_create_extended_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error>(diplomat::Ok<std::unique_ptr<LocaleCanonicalizer>>(std::unique_ptr<LocaleCanonicalizer>(LocaleCanonicalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleCanonicalizer>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline TransformResult LocaleCanonicalizer::canonicalize(Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleCanonicalizer_canonicalize_mv1(this->AsFFI(), - locale.AsFFI()); - return TransformResult::FromFFI(result); -} - -inline const diplomat::capi::LocaleCanonicalizer* LocaleCanonicalizer::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LocaleCanonicalizer*>(this); -} - -inline diplomat::capi::LocaleCanonicalizer* LocaleCanonicalizer::AsFFI() { - return reinterpret_cast<diplomat::capi::LocaleCanonicalizer*>(this); -} - -inline const LocaleCanonicalizer* LocaleCanonicalizer::FromFFI(const diplomat::capi::LocaleCanonicalizer* ptr) { - return reinterpret_cast<const LocaleCanonicalizer*>(ptr); -} - -inline LocaleCanonicalizer* LocaleCanonicalizer::FromFFI(diplomat::capi::LocaleCanonicalizer* ptr) { - return reinterpret_cast<LocaleCanonicalizer*>(ptr); -} - -inline void LocaleCanonicalizer::operator delete(void* ptr) { - diplomat::capi::icu4x_LocaleCanonicalizer_destroy_mv1(reinterpret_cast<diplomat::capi::LocaleCanonicalizer*>(ptr)); -} - - -#endif // LocaleCanonicalizer_HPP diff --git a/ffi/capi/bindings/cpp/LocaleDirection.hpp b/ffi/capi/bindings/cpp/LocaleDirection.hpp deleted file mode 100644 index e67cc1ec5a0..00000000000 --- a/ffi/capi/bindings/cpp/LocaleDirection.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef LocaleDirection_HPP -#define LocaleDirection_HPP - -#include "LocaleDirection.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LocaleDirection LocaleDirection::AsFFI() const { - return static_cast<diplomat::capi::LocaleDirection>(value); -} - -inline LocaleDirection LocaleDirection::FromFFI(diplomat::capi::LocaleDirection c_enum) { - switch (c_enum) { - case diplomat::capi::LocaleDirection_LeftToRight: - case diplomat::capi::LocaleDirection_RightToLeft: - case diplomat::capi::LocaleDirection_Unknown: - return static_cast<LocaleDirection::Value>(c_enum); - default: - abort(); - } -} -#endif // LocaleDirection_HPP diff --git a/ffi/capi/bindings/cpp/LocaleDirectionality.d.hpp b/ffi/capi/bindings/cpp/LocaleDirectionality.d.hpp deleted file mode 100644 index 156323396e4..00000000000 --- a/ffi/capi/bindings/cpp/LocaleDirectionality.d.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef LocaleDirectionality_D_HPP -#define LocaleDirectionality_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -namespace diplomat::capi { struct LocaleExpander; } -class LocaleExpander; -class DataError; -class LocaleDirection; - - -namespace diplomat { -namespace capi { - struct LocaleDirectionality; -} // namespace capi -} // namespace - -class LocaleDirectionality { -public: - - inline static diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError> create(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError> create_with_expander(const DataProvider& provider, const LocaleExpander& expander); - - inline LocaleDirection get(const Locale& locale) const; - - inline bool is_left_to_right(const Locale& locale) const; - - inline bool is_right_to_left(const Locale& locale) const; - - inline const diplomat::capi::LocaleDirectionality* AsFFI() const; - inline diplomat::capi::LocaleDirectionality* AsFFI(); - inline static const LocaleDirectionality* FromFFI(const diplomat::capi::LocaleDirectionality* ptr); - inline static LocaleDirectionality* FromFFI(diplomat::capi::LocaleDirectionality* ptr); - inline static void operator delete(void* ptr); -private: - LocaleDirectionality() = delete; - LocaleDirectionality(const LocaleDirectionality&) = delete; - LocaleDirectionality(LocaleDirectionality&&) noexcept = delete; - LocaleDirectionality operator=(const LocaleDirectionality&) = delete; - LocaleDirectionality operator=(LocaleDirectionality&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LocaleDirectionality_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleDirectionality.hpp b/ffi/capi/bindings/cpp/LocaleDirectionality.hpp deleted file mode 100644 index d14797c76a5..00000000000 --- a/ffi/capi/bindings/cpp/LocaleDirectionality.hpp +++ /dev/null @@ -1,93 +0,0 @@ -#ifndef LocaleDirectionality_HPP -#define LocaleDirectionality_HPP - -#include "LocaleDirectionality.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "LocaleDirection.hpp" -#include "LocaleExpander.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_LocaleDirectionality_create_mv1_result {union {diplomat::capi::LocaleDirectionality* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_mv1_result; - icu4x_LocaleDirectionality_create_mv1_result icu4x_LocaleDirectionality_create_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_LocaleDirectionality_create_with_expander_mv1_result {union {diplomat::capi::LocaleDirectionality* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_with_expander_mv1_result; - icu4x_LocaleDirectionality_create_with_expander_mv1_result icu4x_LocaleDirectionality_create_with_expander_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::LocaleExpander* expander); - - diplomat::capi::LocaleDirection icu4x_LocaleDirectionality_get_mv1(const diplomat::capi::LocaleDirectionality* self, const diplomat::capi::Locale* locale); - - bool icu4x_LocaleDirectionality_is_left_to_right_mv1(const diplomat::capi::LocaleDirectionality* self, const diplomat::capi::Locale* locale); - - bool icu4x_LocaleDirectionality_is_right_to_left_mv1(const diplomat::capi::LocaleDirectionality* self, const diplomat::capi::Locale* locale); - - - void icu4x_LocaleDirectionality_destroy_mv1(LocaleDirectionality* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError> LocaleDirectionality::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LocaleDirectionality_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError>(diplomat::Ok<std::unique_ptr<LocaleDirectionality>>(std::unique_ptr<LocaleDirectionality>(LocaleDirectionality::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError> LocaleDirectionality::create_with_expander(const DataProvider& provider, const LocaleExpander& expander) { - auto result = diplomat::capi::icu4x_LocaleDirectionality_create_with_expander_mv1(provider.AsFFI(), - expander.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError>(diplomat::Ok<std::unique_ptr<LocaleDirectionality>>(std::unique_ptr<LocaleDirectionality>(LocaleDirectionality::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleDirectionality>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline LocaleDirection LocaleDirectionality::get(const Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleDirectionality_get_mv1(this->AsFFI(), - locale.AsFFI()); - return LocaleDirection::FromFFI(result); -} - -inline bool LocaleDirectionality::is_left_to_right(const Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleDirectionality_is_left_to_right_mv1(this->AsFFI(), - locale.AsFFI()); - return result; -} - -inline bool LocaleDirectionality::is_right_to_left(const Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleDirectionality_is_right_to_left_mv1(this->AsFFI(), - locale.AsFFI()); - return result; -} - -inline const diplomat::capi::LocaleDirectionality* LocaleDirectionality::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LocaleDirectionality*>(this); -} - -inline diplomat::capi::LocaleDirectionality* LocaleDirectionality::AsFFI() { - return reinterpret_cast<diplomat::capi::LocaleDirectionality*>(this); -} - -inline const LocaleDirectionality* LocaleDirectionality::FromFFI(const diplomat::capi::LocaleDirectionality* ptr) { - return reinterpret_cast<const LocaleDirectionality*>(ptr); -} - -inline LocaleDirectionality* LocaleDirectionality::FromFFI(diplomat::capi::LocaleDirectionality* ptr) { - return reinterpret_cast<LocaleDirectionality*>(ptr); -} - -inline void LocaleDirectionality::operator delete(void* ptr) { - diplomat::capi::icu4x_LocaleDirectionality_destroy_mv1(reinterpret_cast<diplomat::capi::LocaleDirectionality*>(ptr)); -} - - -#endif // LocaleDirectionality_HPP diff --git a/ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.d.hpp b/ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.d.hpp deleted file mode 100644 index 8ebafd683e0..00000000000 --- a/ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.d.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef LocaleDisplayNamesFormatter_D_HPP -#define LocaleDisplayNamesFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -struct DisplayNamesOptionsV1; -class DataError; - - -namespace diplomat { -namespace capi { - struct LocaleDisplayNamesFormatter; -} // namespace capi -} // namespace - -class LocaleDisplayNamesFormatter { -public: - - inline static diplomat::result<std::unique_ptr<LocaleDisplayNamesFormatter>, DataError> create_v1(const DataProvider& provider, const Locale& locale, DisplayNamesOptionsV1 options); - - inline std::string of(const Locale& locale) const; - - inline const diplomat::capi::LocaleDisplayNamesFormatter* AsFFI() const; - inline diplomat::capi::LocaleDisplayNamesFormatter* AsFFI(); - inline static const LocaleDisplayNamesFormatter* FromFFI(const diplomat::capi::LocaleDisplayNamesFormatter* ptr); - inline static LocaleDisplayNamesFormatter* FromFFI(diplomat::capi::LocaleDisplayNamesFormatter* ptr); - inline static void operator delete(void* ptr); -private: - LocaleDisplayNamesFormatter() = delete; - LocaleDisplayNamesFormatter(const LocaleDisplayNamesFormatter&) = delete; - LocaleDisplayNamesFormatter(LocaleDisplayNamesFormatter&&) noexcept = delete; - LocaleDisplayNamesFormatter operator=(const LocaleDisplayNamesFormatter&) = delete; - LocaleDisplayNamesFormatter operator=(LocaleDisplayNamesFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LocaleDisplayNamesFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.hpp b/ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.hpp deleted file mode 100644 index eb04a48af01..00000000000 --- a/ffi/capi/bindings/cpp/LocaleDisplayNamesFormatter.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef LocaleDisplayNamesFormatter_HPP -#define LocaleDisplayNamesFormatter_HPP - -#include "LocaleDisplayNamesFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "DisplayNamesOptionsV1.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result {union {diplomat::capi::LocaleDisplayNamesFormatter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result; - icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DisplayNamesOptionsV1 options); - - void icu4x_LocaleDisplayNamesFormatter_of_mv1(const diplomat::capi::LocaleDisplayNamesFormatter* self, const diplomat::capi::Locale* locale, diplomat::capi::DiplomatWrite* write); - - - void icu4x_LocaleDisplayNamesFormatter_destroy_mv1(LocaleDisplayNamesFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<LocaleDisplayNamesFormatter>, DataError> LocaleDisplayNamesFormatter::create_v1(const DataProvider& provider, const Locale& locale, DisplayNamesOptionsV1 options) { - auto result = diplomat::capi::icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(provider.AsFFI(), - locale.AsFFI(), - options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleDisplayNamesFormatter>, DataError>(diplomat::Ok<std::unique_ptr<LocaleDisplayNamesFormatter>>(std::unique_ptr<LocaleDisplayNamesFormatter>(LocaleDisplayNamesFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleDisplayNamesFormatter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::string LocaleDisplayNamesFormatter::of(const Locale& locale) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_LocaleDisplayNamesFormatter_of_mv1(this->AsFFI(), - locale.AsFFI(), - &write); - return output; -} - -inline const diplomat::capi::LocaleDisplayNamesFormatter* LocaleDisplayNamesFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LocaleDisplayNamesFormatter*>(this); -} - -inline diplomat::capi::LocaleDisplayNamesFormatter* LocaleDisplayNamesFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::LocaleDisplayNamesFormatter*>(this); -} - -inline const LocaleDisplayNamesFormatter* LocaleDisplayNamesFormatter::FromFFI(const diplomat::capi::LocaleDisplayNamesFormatter* ptr) { - return reinterpret_cast<const LocaleDisplayNamesFormatter*>(ptr); -} - -inline LocaleDisplayNamesFormatter* LocaleDisplayNamesFormatter::FromFFI(diplomat::capi::LocaleDisplayNamesFormatter* ptr) { - return reinterpret_cast<LocaleDisplayNamesFormatter*>(ptr); -} - -inline void LocaleDisplayNamesFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_LocaleDisplayNamesFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::LocaleDisplayNamesFormatter*>(ptr)); -} - - -#endif // LocaleDisplayNamesFormatter_HPP diff --git a/ffi/capi/bindings/cpp/LocaleExpander.d.hpp b/ffi/capi/bindings/cpp/LocaleExpander.d.hpp deleted file mode 100644 index f0d4f03ad9a..00000000000 --- a/ffi/capi/bindings/cpp/LocaleExpander.d.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef LocaleExpander_D_HPP -#define LocaleExpander_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -class Error; -class TransformResult; - - -namespace diplomat { -namespace capi { - struct LocaleExpander; -} // namespace capi -} // namespace - -class LocaleExpander { -public: - - inline static diplomat::result<std::unique_ptr<LocaleExpander>, Error> create(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<LocaleExpander>, Error> create_extended(const DataProvider& provider); - - inline TransformResult maximize(Locale& locale) const; - - inline TransformResult minimize(Locale& locale) const; - - inline TransformResult minimize_favor_script(Locale& locale) const; - - inline const diplomat::capi::LocaleExpander* AsFFI() const; - inline diplomat::capi::LocaleExpander* AsFFI(); - inline static const LocaleExpander* FromFFI(const diplomat::capi::LocaleExpander* ptr); - inline static LocaleExpander* FromFFI(diplomat::capi::LocaleExpander* ptr); - inline static void operator delete(void* ptr); -private: - LocaleExpander() = delete; - LocaleExpander(const LocaleExpander&) = delete; - LocaleExpander(LocaleExpander&&) noexcept = delete; - LocaleExpander operator=(const LocaleExpander&) = delete; - LocaleExpander operator=(LocaleExpander&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LocaleExpander_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleExpander.hpp b/ffi/capi/bindings/cpp/LocaleExpander.hpp deleted file mode 100644 index 5ccb7168509..00000000000 --- a/ffi/capi/bindings/cpp/LocaleExpander.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef LocaleExpander_HPP -#define LocaleExpander_HPP - -#include "LocaleExpander.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataProvider.hpp" -#include "Error.hpp" -#include "Locale.hpp" -#include "TransformResult.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_LocaleExpander_create_mv1_result {union {diplomat::capi::LocaleExpander* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_LocaleExpander_create_mv1_result; - icu4x_LocaleExpander_create_mv1_result icu4x_LocaleExpander_create_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_LocaleExpander_create_extended_mv1_result {union {diplomat::capi::LocaleExpander* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_LocaleExpander_create_extended_mv1_result; - icu4x_LocaleExpander_create_extended_mv1_result icu4x_LocaleExpander_create_extended_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::TransformResult icu4x_LocaleExpander_maximize_mv1(const diplomat::capi::LocaleExpander* self, diplomat::capi::Locale* locale); - - diplomat::capi::TransformResult icu4x_LocaleExpander_minimize_mv1(const diplomat::capi::LocaleExpander* self, diplomat::capi::Locale* locale); - - diplomat::capi::TransformResult icu4x_LocaleExpander_minimize_favor_script_mv1(const diplomat::capi::LocaleExpander* self, diplomat::capi::Locale* locale); - - - void icu4x_LocaleExpander_destroy_mv1(LocaleExpander* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<LocaleExpander>, Error> LocaleExpander::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LocaleExpander_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleExpander>, Error>(diplomat::Ok<std::unique_ptr<LocaleExpander>>(std::unique_ptr<LocaleExpander>(LocaleExpander::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleExpander>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<LocaleExpander>, Error> LocaleExpander::create_extended(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LocaleExpander_create_extended_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleExpander>, Error>(diplomat::Ok<std::unique_ptr<LocaleExpander>>(std::unique_ptr<LocaleExpander>(LocaleExpander::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleExpander>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline TransformResult LocaleExpander::maximize(Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleExpander_maximize_mv1(this->AsFFI(), - locale.AsFFI()); - return TransformResult::FromFFI(result); -} - -inline TransformResult LocaleExpander::minimize(Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleExpander_minimize_mv1(this->AsFFI(), - locale.AsFFI()); - return TransformResult::FromFFI(result); -} - -inline TransformResult LocaleExpander::minimize_favor_script(Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleExpander_minimize_favor_script_mv1(this->AsFFI(), - locale.AsFFI()); - return TransformResult::FromFFI(result); -} - -inline const diplomat::capi::LocaleExpander* LocaleExpander::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LocaleExpander*>(this); -} - -inline diplomat::capi::LocaleExpander* LocaleExpander::AsFFI() { - return reinterpret_cast<diplomat::capi::LocaleExpander*>(this); -} - -inline const LocaleExpander* LocaleExpander::FromFFI(const diplomat::capi::LocaleExpander* ptr) { - return reinterpret_cast<const LocaleExpander*>(ptr); -} - -inline LocaleExpander* LocaleExpander::FromFFI(diplomat::capi::LocaleExpander* ptr) { - return reinterpret_cast<LocaleExpander*>(ptr); -} - -inline void LocaleExpander::operator delete(void* ptr) { - diplomat::capi::icu4x_LocaleExpander_destroy_mv1(reinterpret_cast<diplomat::capi::LocaleExpander*>(ptr)); -} - - -#endif // LocaleExpander_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackConfig.d.hpp b/ffi/capi/bindings/cpp/LocaleFallbackConfig.d.hpp deleted file mode 100644 index 4d3ceb7968f..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackConfig.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef LocaleFallbackConfig_D_HPP -#define LocaleFallbackConfig_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "LocaleFallbackPriority.d.hpp" -#include "LocaleFallbackSupplement.d.hpp" -#include "diplomat_runtime.hpp" - -class LocaleFallbackPriority; -class LocaleFallbackSupplement; - - -namespace diplomat { -namespace capi { - struct LocaleFallbackConfig { - diplomat::capi::LocaleFallbackPriority priority; - diplomat::capi::DiplomatStringView extension_key; - diplomat::capi::LocaleFallbackSupplement fallback_supplement; - }; -} // namespace capi -} // namespace - - -struct LocaleFallbackConfig { - LocaleFallbackPriority priority; - std::string_view extension_key; - LocaleFallbackSupplement fallback_supplement; - - inline diplomat::capi::LocaleFallbackConfig AsFFI() const; - inline static LocaleFallbackConfig FromFFI(diplomat::capi::LocaleFallbackConfig c_struct); -}; - - -#endif // LocaleFallbackConfig_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackConfig.hpp b/ffi/capi/bindings/cpp/LocaleFallbackConfig.hpp deleted file mode 100644 index 151f58cdcf9..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackConfig.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef LocaleFallbackConfig_HPP -#define LocaleFallbackConfig_HPP - -#include "LocaleFallbackConfig.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "LocaleFallbackPriority.hpp" -#include "LocaleFallbackSupplement.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::LocaleFallbackConfig LocaleFallbackConfig::AsFFI() const { - return diplomat::capi::LocaleFallbackConfig { - /* .priority = */ priority.AsFFI(), - /* .extension_key = */ {extension_key.data(), extension_key.size()}, - /* .fallback_supplement = */ fallback_supplement.AsFFI(), - }; -} - -inline LocaleFallbackConfig LocaleFallbackConfig::FromFFI(diplomat::capi::LocaleFallbackConfig c_struct) { - return LocaleFallbackConfig { - /* .priority = */ LocaleFallbackPriority::FromFFI(c_struct.priority), - /* .extension_key = */ std::string_view(c_struct.extension_key.data, c_struct.extension_key.len), - /* .fallback_supplement = */ LocaleFallbackSupplement::FromFFI(c_struct.fallback_supplement), - }; -} - - -#endif // LocaleFallbackConfig_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackIterator.d.hpp b/ffi/capi/bindings/cpp/LocaleFallbackIterator.d.hpp deleted file mode 100644 index acc9fe20083..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackIterator.d.hpp +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef LocaleFallbackIterator_D_HPP -#define LocaleFallbackIterator_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct Locale; } -class Locale; - - -namespace diplomat { -namespace capi { - struct LocaleFallbackIterator; -} // namespace capi -} // namespace - -class LocaleFallbackIterator { -public: - - inline std::unique_ptr<Locale> next(); - - inline const diplomat::capi::LocaleFallbackIterator* AsFFI() const; - inline diplomat::capi::LocaleFallbackIterator* AsFFI(); - inline static const LocaleFallbackIterator* FromFFI(const diplomat::capi::LocaleFallbackIterator* ptr); - inline static LocaleFallbackIterator* FromFFI(diplomat::capi::LocaleFallbackIterator* ptr); - inline static void operator delete(void* ptr); -private: - LocaleFallbackIterator() = delete; - LocaleFallbackIterator(const LocaleFallbackIterator&) = delete; - LocaleFallbackIterator(LocaleFallbackIterator&&) noexcept = delete; - LocaleFallbackIterator operator=(const LocaleFallbackIterator&) = delete; - LocaleFallbackIterator operator=(LocaleFallbackIterator&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LocaleFallbackIterator_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackIterator.hpp b/ffi/capi/bindings/cpp/LocaleFallbackIterator.hpp deleted file mode 100644 index 70aae6261fb..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackIterator.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef LocaleFallbackIterator_HPP -#define LocaleFallbackIterator_HPP - -#include "LocaleFallbackIterator.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::Locale* icu4x_LocaleFallbackIterator_next_mv1(diplomat::capi::LocaleFallbackIterator* self); - - - void icu4x_LocaleFallbackIterator_destroy_mv1(LocaleFallbackIterator* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline std::unique_ptr<Locale> LocaleFallbackIterator::next() { - auto result = diplomat::capi::icu4x_LocaleFallbackIterator_next_mv1(this->AsFFI()); - return std::unique_ptr<Locale>(Locale::FromFFI(result)); -} - -inline const diplomat::capi::LocaleFallbackIterator* LocaleFallbackIterator::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LocaleFallbackIterator*>(this); -} - -inline diplomat::capi::LocaleFallbackIterator* LocaleFallbackIterator::AsFFI() { - return reinterpret_cast<diplomat::capi::LocaleFallbackIterator*>(this); -} - -inline const LocaleFallbackIterator* LocaleFallbackIterator::FromFFI(const diplomat::capi::LocaleFallbackIterator* ptr) { - return reinterpret_cast<const LocaleFallbackIterator*>(ptr); -} - -inline LocaleFallbackIterator* LocaleFallbackIterator::FromFFI(diplomat::capi::LocaleFallbackIterator* ptr) { - return reinterpret_cast<LocaleFallbackIterator*>(ptr); -} - -inline void LocaleFallbackIterator::operator delete(void* ptr) { - diplomat::capi::icu4x_LocaleFallbackIterator_destroy_mv1(reinterpret_cast<diplomat::capi::LocaleFallbackIterator*>(ptr)); -} - - -#endif // LocaleFallbackIterator_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackPriority.hpp b/ffi/capi/bindings/cpp/LocaleFallbackPriority.hpp deleted file mode 100644 index 37dc135a9d9..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackPriority.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef LocaleFallbackPriority_HPP -#define LocaleFallbackPriority_HPP - -#include "LocaleFallbackPriority.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LocaleFallbackPriority LocaleFallbackPriority::AsFFI() const { - return static_cast<diplomat::capi::LocaleFallbackPriority>(value); -} - -inline LocaleFallbackPriority LocaleFallbackPriority::FromFFI(diplomat::capi::LocaleFallbackPriority c_enum) { - switch (c_enum) { - case diplomat::capi::LocaleFallbackPriority_Language: - case diplomat::capi::LocaleFallbackPriority_Region: - case diplomat::capi::LocaleFallbackPriority_Collation: - return static_cast<LocaleFallbackPriority::Value>(c_enum); - default: - abort(); - } -} -#endif // LocaleFallbackPriority_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackSupplement.hpp b/ffi/capi/bindings/cpp/LocaleFallbackSupplement.hpp deleted file mode 100644 index 1a15b81a857..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackSupplement.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef LocaleFallbackSupplement_HPP -#define LocaleFallbackSupplement_HPP - -#include "LocaleFallbackSupplement.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LocaleFallbackSupplement LocaleFallbackSupplement::AsFFI() const { - return static_cast<diplomat::capi::LocaleFallbackSupplement>(value); -} - -inline LocaleFallbackSupplement LocaleFallbackSupplement::FromFFI(diplomat::capi::LocaleFallbackSupplement c_enum) { - switch (c_enum) { - case diplomat::capi::LocaleFallbackSupplement_None: - case diplomat::capi::LocaleFallbackSupplement_Collation: - return static_cast<LocaleFallbackSupplement::Value>(c_enum); - default: - abort(); - } -} -#endif // LocaleFallbackSupplement_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbacker.d.hpp b/ffi/capi/bindings/cpp/LocaleFallbacker.d.hpp deleted file mode 100644 index 7457c7ab6b8..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbacker.d.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef LocaleFallbacker_D_HPP -#define LocaleFallbacker_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct LocaleFallbackerWithConfig; } -class LocaleFallbackerWithConfig; -struct LocaleFallbackConfig; -class DataError; -class LocaleParseError; - - -namespace diplomat { -namespace capi { - struct LocaleFallbacker; -} // namespace capi -} // namespace - -class LocaleFallbacker { -public: - - inline static diplomat::result<std::unique_ptr<LocaleFallbacker>, DataError> create(const DataProvider& provider); - - inline static std::unique_ptr<LocaleFallbacker> without_data(); - - inline diplomat::result<std::unique_ptr<LocaleFallbackerWithConfig>, LocaleParseError> for_config(LocaleFallbackConfig config) const; - - inline const diplomat::capi::LocaleFallbacker* AsFFI() const; - inline diplomat::capi::LocaleFallbacker* AsFFI(); - inline static const LocaleFallbacker* FromFFI(const diplomat::capi::LocaleFallbacker* ptr); - inline static LocaleFallbacker* FromFFI(diplomat::capi::LocaleFallbacker* ptr); - inline static void operator delete(void* ptr); -private: - LocaleFallbacker() = delete; - LocaleFallbacker(const LocaleFallbacker&) = delete; - LocaleFallbacker(LocaleFallbacker&&) noexcept = delete; - LocaleFallbacker operator=(const LocaleFallbacker&) = delete; - LocaleFallbacker operator=(LocaleFallbacker&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LocaleFallbacker_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbacker.hpp b/ffi/capi/bindings/cpp/LocaleFallbacker.hpp deleted file mode 100644 index cd5655e575d..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbacker.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef LocaleFallbacker_HPP -#define LocaleFallbacker_HPP - -#include "LocaleFallbacker.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "LocaleFallbackConfig.hpp" -#include "LocaleFallbackerWithConfig.hpp" -#include "LocaleParseError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_LocaleFallbacker_create_mv1_result {union {diplomat::capi::LocaleFallbacker* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_LocaleFallbacker_create_mv1_result; - icu4x_LocaleFallbacker_create_mv1_result icu4x_LocaleFallbacker_create_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::LocaleFallbacker* icu4x_LocaleFallbacker_without_data_mv1(void); - - typedef struct icu4x_LocaleFallbacker_for_config_mv1_result {union {diplomat::capi::LocaleFallbackerWithConfig* ok; diplomat::capi::LocaleParseError err;}; bool is_ok;} icu4x_LocaleFallbacker_for_config_mv1_result; - icu4x_LocaleFallbacker_for_config_mv1_result icu4x_LocaleFallbacker_for_config_mv1(const diplomat::capi::LocaleFallbacker* self, diplomat::capi::LocaleFallbackConfig config); - - - void icu4x_LocaleFallbacker_destroy_mv1(LocaleFallbacker* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<LocaleFallbacker>, DataError> LocaleFallbacker::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_LocaleFallbacker_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleFallbacker>, DataError>(diplomat::Ok<std::unique_ptr<LocaleFallbacker>>(std::unique_ptr<LocaleFallbacker>(LocaleFallbacker::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleFallbacker>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<LocaleFallbacker> LocaleFallbacker::without_data() { - auto result = diplomat::capi::icu4x_LocaleFallbacker_without_data_mv1(); - return std::unique_ptr<LocaleFallbacker>(LocaleFallbacker::FromFFI(result)); -} - -inline diplomat::result<std::unique_ptr<LocaleFallbackerWithConfig>, LocaleParseError> LocaleFallbacker::for_config(LocaleFallbackConfig config) const { - auto result = diplomat::capi::icu4x_LocaleFallbacker_for_config_mv1(this->AsFFI(), - config.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<LocaleFallbackerWithConfig>, LocaleParseError>(diplomat::Ok<std::unique_ptr<LocaleFallbackerWithConfig>>(std::unique_ptr<LocaleFallbackerWithConfig>(LocaleFallbackerWithConfig::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<LocaleFallbackerWithConfig>, LocaleParseError>(diplomat::Err<LocaleParseError>(LocaleParseError::FromFFI(result.err))); -} - -inline const diplomat::capi::LocaleFallbacker* LocaleFallbacker::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LocaleFallbacker*>(this); -} - -inline diplomat::capi::LocaleFallbacker* LocaleFallbacker::AsFFI() { - return reinterpret_cast<diplomat::capi::LocaleFallbacker*>(this); -} - -inline const LocaleFallbacker* LocaleFallbacker::FromFFI(const diplomat::capi::LocaleFallbacker* ptr) { - return reinterpret_cast<const LocaleFallbacker*>(ptr); -} - -inline LocaleFallbacker* LocaleFallbacker::FromFFI(diplomat::capi::LocaleFallbacker* ptr) { - return reinterpret_cast<LocaleFallbacker*>(ptr); -} - -inline void LocaleFallbacker::operator delete(void* ptr) { - diplomat::capi::icu4x_LocaleFallbacker_destroy_mv1(reinterpret_cast<diplomat::capi::LocaleFallbacker*>(ptr)); -} - - -#endif // LocaleFallbacker_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.d.hpp b/ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.d.hpp deleted file mode 100644 index 4b1450d7636..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.d.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef LocaleFallbackerWithConfig_D_HPP -#define LocaleFallbackerWithConfig_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct Locale; } -class Locale; -namespace diplomat::capi { struct LocaleFallbackIterator; } -class LocaleFallbackIterator; - - -namespace diplomat { -namespace capi { - struct LocaleFallbackerWithConfig; -} // namespace capi -} // namespace - -class LocaleFallbackerWithConfig { -public: - - inline std::unique_ptr<LocaleFallbackIterator> fallback_for_locale(const Locale& locale) const; - - inline const diplomat::capi::LocaleFallbackerWithConfig* AsFFI() const; - inline diplomat::capi::LocaleFallbackerWithConfig* AsFFI(); - inline static const LocaleFallbackerWithConfig* FromFFI(const diplomat::capi::LocaleFallbackerWithConfig* ptr); - inline static LocaleFallbackerWithConfig* FromFFI(diplomat::capi::LocaleFallbackerWithConfig* ptr); - inline static void operator delete(void* ptr); -private: - LocaleFallbackerWithConfig() = delete; - LocaleFallbackerWithConfig(const LocaleFallbackerWithConfig&) = delete; - LocaleFallbackerWithConfig(LocaleFallbackerWithConfig&&) noexcept = delete; - LocaleFallbackerWithConfig operator=(const LocaleFallbackerWithConfig&) = delete; - LocaleFallbackerWithConfig operator=(LocaleFallbackerWithConfig&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // LocaleFallbackerWithConfig_D_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.hpp b/ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.hpp deleted file mode 100644 index fbf60c6fdbc..00000000000 --- a/ffi/capi/bindings/cpp/LocaleFallbackerWithConfig.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef LocaleFallbackerWithConfig_HPP -#define LocaleFallbackerWithConfig_HPP - -#include "LocaleFallbackerWithConfig.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "Locale.hpp" -#include "LocaleFallbackIterator.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::LocaleFallbackIterator* icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(const diplomat::capi::LocaleFallbackerWithConfig* self, const diplomat::capi::Locale* locale); - - - void icu4x_LocaleFallbackerWithConfig_destroy_mv1(LocaleFallbackerWithConfig* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline std::unique_ptr<LocaleFallbackIterator> LocaleFallbackerWithConfig::fallback_for_locale(const Locale& locale) const { - auto result = diplomat::capi::icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(this->AsFFI(), - locale.AsFFI()); - return std::unique_ptr<LocaleFallbackIterator>(LocaleFallbackIterator::FromFFI(result)); -} - -inline const diplomat::capi::LocaleFallbackerWithConfig* LocaleFallbackerWithConfig::AsFFI() const { - return reinterpret_cast<const diplomat::capi::LocaleFallbackerWithConfig*>(this); -} - -inline diplomat::capi::LocaleFallbackerWithConfig* LocaleFallbackerWithConfig::AsFFI() { - return reinterpret_cast<diplomat::capi::LocaleFallbackerWithConfig*>(this); -} - -inline const LocaleFallbackerWithConfig* LocaleFallbackerWithConfig::FromFFI(const diplomat::capi::LocaleFallbackerWithConfig* ptr) { - return reinterpret_cast<const LocaleFallbackerWithConfig*>(ptr); -} - -inline LocaleFallbackerWithConfig* LocaleFallbackerWithConfig::FromFFI(diplomat::capi::LocaleFallbackerWithConfig* ptr) { - return reinterpret_cast<LocaleFallbackerWithConfig*>(ptr); -} - -inline void LocaleFallbackerWithConfig::operator delete(void* ptr) { - diplomat::capi::icu4x_LocaleFallbackerWithConfig_destroy_mv1(reinterpret_cast<diplomat::capi::LocaleFallbackerWithConfig*>(ptr)); -} - - -#endif // LocaleFallbackerWithConfig_HPP diff --git a/ffi/capi/bindings/cpp/LocaleParseError.hpp b/ffi/capi/bindings/cpp/LocaleParseError.hpp deleted file mode 100644 index 4f944297249..00000000000 --- a/ffi/capi/bindings/cpp/LocaleParseError.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef LocaleParseError_HPP -#define LocaleParseError_HPP - -#include "LocaleParseError.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::LocaleParseError LocaleParseError::AsFFI() const { - return static_cast<diplomat::capi::LocaleParseError>(value); -} - -inline LocaleParseError LocaleParseError::FromFFI(diplomat::capi::LocaleParseError c_enum) { - switch (c_enum) { - case diplomat::capi::LocaleParseError_Unknown: - case diplomat::capi::LocaleParseError_Language: - case diplomat::capi::LocaleParseError_Subtag: - case diplomat::capi::LocaleParseError_Extension: - return static_cast<LocaleParseError::Value>(c_enum); - default: - abort(); - } -} -#endif // LocaleParseError_HPP diff --git a/ffi/capi/bindings/cpp/Logger.d.hpp b/ffi/capi/bindings/cpp/Logger.d.hpp deleted file mode 100644 index 2b055943258..00000000000 --- a/ffi/capi/bindings/cpp/Logger.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef Logger_D_HPP -#define Logger_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct Logger; -} // namespace capi -} // namespace - -class Logger { -public: - - inline static bool init_simple_logger(); - - inline const diplomat::capi::Logger* AsFFI() const; - inline diplomat::capi::Logger* AsFFI(); - inline static const Logger* FromFFI(const diplomat::capi::Logger* ptr); - inline static Logger* FromFFI(diplomat::capi::Logger* ptr); - inline static void operator delete(void* ptr); -private: - Logger() = delete; - Logger(const Logger&) = delete; - Logger(Logger&&) noexcept = delete; - Logger operator=(const Logger&) = delete; - Logger operator=(Logger&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // Logger_D_HPP diff --git a/ffi/capi/bindings/cpp/Logger.hpp b/ffi/capi/bindings/cpp/Logger.hpp deleted file mode 100644 index 069dc706d93..00000000000 --- a/ffi/capi/bindings/cpp/Logger.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef Logger_HPP -#define Logger_HPP - -#include "Logger.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - bool icu4x_Logger_init_simple_logger_mv1(void); - - - void icu4x_Logger_destroy_mv1(Logger* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline bool Logger::init_simple_logger() { - auto result = diplomat::capi::icu4x_Logger_init_simple_logger_mv1(); - return result; -} - -inline const diplomat::capi::Logger* Logger::AsFFI() const { - return reinterpret_cast<const diplomat::capi::Logger*>(this); -} - -inline diplomat::capi::Logger* Logger::AsFFI() { - return reinterpret_cast<diplomat::capi::Logger*>(this); -} - -inline const Logger* Logger::FromFFI(const diplomat::capi::Logger* ptr) { - return reinterpret_cast<const Logger*>(ptr); -} - -inline Logger* Logger::FromFFI(diplomat::capi::Logger* ptr) { - return reinterpret_cast<Logger*>(ptr); -} - -inline void Logger::operator delete(void* ptr) { - diplomat::capi::icu4x_Logger_destroy_mv1(reinterpret_cast<diplomat::capi::Logger*>(ptr)); -} - - -#endif // Logger_HPP diff --git a/ffi/capi/bindings/cpp/MeasureUnit.d.hpp b/ffi/capi/bindings/cpp/MeasureUnit.d.hpp deleted file mode 100644 index dbaba64bba0..00000000000 --- a/ffi/capi/bindings/cpp/MeasureUnit.d.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef MeasureUnit_D_HPP -#define MeasureUnit_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct MeasureUnit; -} // namespace capi -} // namespace - -class MeasureUnit { -public: - - inline const diplomat::capi::MeasureUnit* AsFFI() const; - inline diplomat::capi::MeasureUnit* AsFFI(); - inline static const MeasureUnit* FromFFI(const diplomat::capi::MeasureUnit* ptr); - inline static MeasureUnit* FromFFI(diplomat::capi::MeasureUnit* ptr); - inline static void operator delete(void* ptr); -private: - MeasureUnit() = delete; - MeasureUnit(const MeasureUnit&) = delete; - MeasureUnit(MeasureUnit&&) noexcept = delete; - MeasureUnit operator=(const MeasureUnit&) = delete; - MeasureUnit operator=(MeasureUnit&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // MeasureUnit_D_HPP diff --git a/ffi/capi/bindings/cpp/MeasureUnit.hpp b/ffi/capi/bindings/cpp/MeasureUnit.hpp deleted file mode 100644 index 0276844ebce..00000000000 --- a/ffi/capi/bindings/cpp/MeasureUnit.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef MeasureUnit_HPP -#define MeasureUnit_HPP - -#include "MeasureUnit.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - void icu4x_MeasureUnit_destroy_mv1(MeasureUnit* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline const diplomat::capi::MeasureUnit* MeasureUnit::AsFFI() const { - return reinterpret_cast<const diplomat::capi::MeasureUnit*>(this); -} - -inline diplomat::capi::MeasureUnit* MeasureUnit::AsFFI() { - return reinterpret_cast<diplomat::capi::MeasureUnit*>(this); -} - -inline const MeasureUnit* MeasureUnit::FromFFI(const diplomat::capi::MeasureUnit* ptr) { - return reinterpret_cast<const MeasureUnit*>(ptr); -} - -inline MeasureUnit* MeasureUnit::FromFFI(diplomat::capi::MeasureUnit* ptr) { - return reinterpret_cast<MeasureUnit*>(ptr); -} - -inline void MeasureUnit::operator delete(void* ptr) { - diplomat::capi::icu4x_MeasureUnit_destroy_mv1(reinterpret_cast<diplomat::capi::MeasureUnit*>(ptr)); -} - - -#endif // MeasureUnit_HPP diff --git a/ffi/capi/bindings/cpp/MeasureUnitParser.d.hpp b/ffi/capi/bindings/cpp/MeasureUnitParser.d.hpp deleted file mode 100644 index ee948059378..00000000000 --- a/ffi/capi/bindings/cpp/MeasureUnitParser.d.hpp +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef MeasureUnitParser_D_HPP -#define MeasureUnitParser_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct MeasureUnit; } -class MeasureUnit; - - -namespace diplomat { -namespace capi { - struct MeasureUnitParser; -} // namespace capi -} // namespace - -class MeasureUnitParser { -public: - - inline std::unique_ptr<MeasureUnit> parse(std::string_view unit_id) const; - - inline const diplomat::capi::MeasureUnitParser* AsFFI() const; - inline diplomat::capi::MeasureUnitParser* AsFFI(); - inline static const MeasureUnitParser* FromFFI(const diplomat::capi::MeasureUnitParser* ptr); - inline static MeasureUnitParser* FromFFI(diplomat::capi::MeasureUnitParser* ptr); - inline static void operator delete(void* ptr); -private: - MeasureUnitParser() = delete; - MeasureUnitParser(const MeasureUnitParser&) = delete; - MeasureUnitParser(MeasureUnitParser&&) noexcept = delete; - MeasureUnitParser operator=(const MeasureUnitParser&) = delete; - MeasureUnitParser operator=(MeasureUnitParser&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // MeasureUnitParser_D_HPP diff --git a/ffi/capi/bindings/cpp/MeasureUnitParser.hpp b/ffi/capi/bindings/cpp/MeasureUnitParser.hpp deleted file mode 100644 index e6bd4159d56..00000000000 --- a/ffi/capi/bindings/cpp/MeasureUnitParser.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef MeasureUnitParser_HPP -#define MeasureUnitParser_HPP - -#include "MeasureUnitParser.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "MeasureUnit.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::MeasureUnit* icu4x_MeasureUnitParser_parse_mv1(const diplomat::capi::MeasureUnitParser* self, const char* unit_id_data, size_t unit_id_len); - - - void icu4x_MeasureUnitParser_destroy_mv1(MeasureUnitParser* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline std::unique_ptr<MeasureUnit> MeasureUnitParser::parse(std::string_view unit_id) const { - auto result = diplomat::capi::icu4x_MeasureUnitParser_parse_mv1(this->AsFFI(), - unit_id.data(), - unit_id.size()); - return std::unique_ptr<MeasureUnit>(MeasureUnit::FromFFI(result)); -} - -inline const diplomat::capi::MeasureUnitParser* MeasureUnitParser::AsFFI() const { - return reinterpret_cast<const diplomat::capi::MeasureUnitParser*>(this); -} - -inline diplomat::capi::MeasureUnitParser* MeasureUnitParser::AsFFI() { - return reinterpret_cast<diplomat::capi::MeasureUnitParser*>(this); -} - -inline const MeasureUnitParser* MeasureUnitParser::FromFFI(const diplomat::capi::MeasureUnitParser* ptr) { - return reinterpret_cast<const MeasureUnitParser*>(ptr); -} - -inline MeasureUnitParser* MeasureUnitParser::FromFFI(diplomat::capi::MeasureUnitParser* ptr) { - return reinterpret_cast<MeasureUnitParser*>(ptr); -} - -inline void MeasureUnitParser::operator delete(void* ptr) { - diplomat::capi::icu4x_MeasureUnitParser_destroy_mv1(reinterpret_cast<diplomat::capi::MeasureUnitParser*>(ptr)); -} - - -#endif // MeasureUnitParser_HPP diff --git a/ffi/capi/bindings/cpp/MetazoneCalculator.d.hpp b/ffi/capi/bindings/cpp/MetazoneCalculator.d.hpp deleted file mode 100644 index a4434ef4454..00000000000 --- a/ffi/capi/bindings/cpp/MetazoneCalculator.d.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef MetazoneCalculator_D_HPP -#define MetazoneCalculator_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct MetazoneCalculator; -} // namespace capi -} // namespace - -class MetazoneCalculator { -public: - - inline static diplomat::result<std::unique_ptr<MetazoneCalculator>, DataError> create(const DataProvider& provider); - - inline const diplomat::capi::MetazoneCalculator* AsFFI() const; - inline diplomat::capi::MetazoneCalculator* AsFFI(); - inline static const MetazoneCalculator* FromFFI(const diplomat::capi::MetazoneCalculator* ptr); - inline static MetazoneCalculator* FromFFI(diplomat::capi::MetazoneCalculator* ptr); - inline static void operator delete(void* ptr); -private: - MetazoneCalculator() = delete; - MetazoneCalculator(const MetazoneCalculator&) = delete; - MetazoneCalculator(MetazoneCalculator&&) noexcept = delete; - MetazoneCalculator operator=(const MetazoneCalculator&) = delete; - MetazoneCalculator operator=(MetazoneCalculator&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // MetazoneCalculator_D_HPP diff --git a/ffi/capi/bindings/cpp/MetazoneCalculator.hpp b/ffi/capi/bindings/cpp/MetazoneCalculator.hpp deleted file mode 100644 index e39738014c3..00000000000 --- a/ffi/capi/bindings/cpp/MetazoneCalculator.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef MetazoneCalculator_HPP -#define MetazoneCalculator_HPP - -#include "MetazoneCalculator.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_MetazoneCalculator_create_mv1_result {union {diplomat::capi::MetazoneCalculator* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_MetazoneCalculator_create_mv1_result; - icu4x_MetazoneCalculator_create_mv1_result icu4x_MetazoneCalculator_create_mv1(const diplomat::capi::DataProvider* provider); - - - void icu4x_MetazoneCalculator_destroy_mv1(MetazoneCalculator* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<MetazoneCalculator>, DataError> MetazoneCalculator::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_MetazoneCalculator_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<MetazoneCalculator>, DataError>(diplomat::Ok<std::unique_ptr<MetazoneCalculator>>(std::unique_ptr<MetazoneCalculator>(MetazoneCalculator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<MetazoneCalculator>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline const diplomat::capi::MetazoneCalculator* MetazoneCalculator::AsFFI() const { - return reinterpret_cast<const diplomat::capi::MetazoneCalculator*>(this); -} - -inline diplomat::capi::MetazoneCalculator* MetazoneCalculator::AsFFI() { - return reinterpret_cast<diplomat::capi::MetazoneCalculator*>(this); -} - -inline const MetazoneCalculator* MetazoneCalculator::FromFFI(const diplomat::capi::MetazoneCalculator* ptr) { - return reinterpret_cast<const MetazoneCalculator*>(ptr); -} - -inline MetazoneCalculator* MetazoneCalculator::FromFFI(diplomat::capi::MetazoneCalculator* ptr) { - return reinterpret_cast<MetazoneCalculator*>(ptr); -} - -inline void MetazoneCalculator::operator delete(void* ptr) { - diplomat::capi::icu4x_MetazoneCalculator_destroy_mv1(reinterpret_cast<diplomat::capi::MetazoneCalculator*>(ptr)); -} - - -#endif // MetazoneCalculator_HPP diff --git a/ffi/capi/bindings/cpp/PluralCategory.hpp b/ffi/capi/bindings/cpp/PluralCategory.hpp deleted file mode 100644 index 1d605a53f73..00000000000 --- a/ffi/capi/bindings/cpp/PluralCategory.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef PluralCategory_HPP -#define PluralCategory_HPP - -#include "PluralCategory.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_PluralCategory_get_for_cldr_string_mv1_result {union {diplomat::capi::PluralCategory ok; }; bool is_ok;} icu4x_PluralCategory_get_for_cldr_string_mv1_result; - icu4x_PluralCategory_get_for_cldr_string_mv1_result icu4x_PluralCategory_get_for_cldr_string_mv1(const char* s_data, size_t s_len); - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::PluralCategory PluralCategory::AsFFI() const { - return static_cast<diplomat::capi::PluralCategory>(value); -} - -inline PluralCategory PluralCategory::FromFFI(diplomat::capi::PluralCategory c_enum) { - switch (c_enum) { - case diplomat::capi::PluralCategory_Zero: - case diplomat::capi::PluralCategory_One: - case diplomat::capi::PluralCategory_Two: - case diplomat::capi::PluralCategory_Few: - case diplomat::capi::PluralCategory_Many: - case diplomat::capi::PluralCategory_Other: - return static_cast<PluralCategory::Value>(c_enum); - default: - abort(); - } -} - -inline std::optional<PluralCategory> PluralCategory::get_for_cldr_string(std::string_view s) { - auto result = diplomat::capi::icu4x_PluralCategory_get_for_cldr_string_mv1(s.data(), - s.size()); - return result.is_ok ? std::optional<PluralCategory>(PluralCategory::FromFFI(result.ok)) : std::nullopt; -} -#endif // PluralCategory_HPP diff --git a/ffi/capi/bindings/cpp/PluralOperands.d.hpp b/ffi/capi/bindings/cpp/PluralOperands.d.hpp deleted file mode 100644 index 88cd6767f49..00000000000 --- a/ffi/capi/bindings/cpp/PluralOperands.d.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef PluralOperands_D_HPP -#define PluralOperands_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct FixedDecimal; } -class FixedDecimal; -class FixedDecimalParseError; - - -namespace diplomat { -namespace capi { - struct PluralOperands; -} // namespace capi -} // namespace - -class PluralOperands { -public: - - inline static diplomat::result<std::unique_ptr<PluralOperands>, FixedDecimalParseError> from_string(std::string_view s); - - inline static std::unique_ptr<PluralOperands> from_fixed_decimal(const FixedDecimal& x); - - inline const diplomat::capi::PluralOperands* AsFFI() const; - inline diplomat::capi::PluralOperands* AsFFI(); - inline static const PluralOperands* FromFFI(const diplomat::capi::PluralOperands* ptr); - inline static PluralOperands* FromFFI(diplomat::capi::PluralOperands* ptr); - inline static void operator delete(void* ptr); -private: - PluralOperands() = delete; - PluralOperands(const PluralOperands&) = delete; - PluralOperands(PluralOperands&&) noexcept = delete; - PluralOperands operator=(const PluralOperands&) = delete; - PluralOperands operator=(PluralOperands&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // PluralOperands_D_HPP diff --git a/ffi/capi/bindings/cpp/PluralOperands.hpp b/ffi/capi/bindings/cpp/PluralOperands.hpp deleted file mode 100644 index 57ae62bd9b8..00000000000 --- a/ffi/capi/bindings/cpp/PluralOperands.hpp +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef PluralOperands_HPP -#define PluralOperands_HPP - -#include "PluralOperands.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "FixedDecimal.hpp" -#include "FixedDecimalParseError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_PluralOperands_from_string_mv1_result {union {diplomat::capi::PluralOperands* ok; diplomat::capi::FixedDecimalParseError err;}; bool is_ok;} icu4x_PluralOperands_from_string_mv1_result; - icu4x_PluralOperands_from_string_mv1_result icu4x_PluralOperands_from_string_mv1(const char* s_data, size_t s_len); - - diplomat::capi::PluralOperands* icu4x_PluralOperands_from_fixed_decimal_mv1(const diplomat::capi::FixedDecimal* x); - - - void icu4x_PluralOperands_destroy_mv1(PluralOperands* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<PluralOperands>, FixedDecimalParseError> PluralOperands::from_string(std::string_view s) { - auto result = diplomat::capi::icu4x_PluralOperands_from_string_mv1(s.data(), - s.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<PluralOperands>, FixedDecimalParseError>(diplomat::Ok<std::unique_ptr<PluralOperands>>(std::unique_ptr<PluralOperands>(PluralOperands::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PluralOperands>, FixedDecimalParseError>(diplomat::Err<FixedDecimalParseError>(FixedDecimalParseError::FromFFI(result.err))); -} - -inline std::unique_ptr<PluralOperands> PluralOperands::from_fixed_decimal(const FixedDecimal& x) { - auto result = diplomat::capi::icu4x_PluralOperands_from_fixed_decimal_mv1(x.AsFFI()); - return std::unique_ptr<PluralOperands>(PluralOperands::FromFFI(result)); -} - -inline const diplomat::capi::PluralOperands* PluralOperands::AsFFI() const { - return reinterpret_cast<const diplomat::capi::PluralOperands*>(this); -} - -inline diplomat::capi::PluralOperands* PluralOperands::AsFFI() { - return reinterpret_cast<diplomat::capi::PluralOperands*>(this); -} - -inline const PluralOperands* PluralOperands::FromFFI(const diplomat::capi::PluralOperands* ptr) { - return reinterpret_cast<const PluralOperands*>(ptr); -} - -inline PluralOperands* PluralOperands::FromFFI(diplomat::capi::PluralOperands* ptr) { - return reinterpret_cast<PluralOperands*>(ptr); -} - -inline void PluralOperands::operator delete(void* ptr) { - diplomat::capi::icu4x_PluralOperands_destroy_mv1(reinterpret_cast<diplomat::capi::PluralOperands*>(ptr)); -} - - -#endif // PluralOperands_HPP diff --git a/ffi/capi/bindings/cpp/PluralRules.d.hpp b/ffi/capi/bindings/cpp/PluralRules.d.hpp deleted file mode 100644 index 4581841983e..00000000000 --- a/ffi/capi/bindings/cpp/PluralRules.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef PluralRules_D_HPP -#define PluralRules_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -namespace diplomat::capi { struct PluralOperands; } -class PluralOperands; -struct PluralCategories; -class DataError; -class PluralCategory; - - -namespace diplomat { -namespace capi { - struct PluralRules; -} // namespace capi -} // namespace - -class PluralRules { -public: - - inline static diplomat::result<std::unique_ptr<PluralRules>, DataError> create_cardinal(const DataProvider& provider, const Locale& locale); - - inline static diplomat::result<std::unique_ptr<PluralRules>, DataError> create_ordinal(const DataProvider& provider, const Locale& locale); - - inline PluralCategory category_for(const PluralOperands& op) const; - - inline PluralCategories categories() const; - - inline const diplomat::capi::PluralRules* AsFFI() const; - inline diplomat::capi::PluralRules* AsFFI(); - inline static const PluralRules* FromFFI(const diplomat::capi::PluralRules* ptr); - inline static PluralRules* FromFFI(diplomat::capi::PluralRules* ptr); - inline static void operator delete(void* ptr); -private: - PluralRules() = delete; - PluralRules(const PluralRules&) = delete; - PluralRules(PluralRules&&) noexcept = delete; - PluralRules operator=(const PluralRules&) = delete; - PluralRules operator=(PluralRules&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // PluralRules_D_HPP diff --git a/ffi/capi/bindings/cpp/PluralRules.hpp b/ffi/capi/bindings/cpp/PluralRules.hpp deleted file mode 100644 index 8c42c73986b..00000000000 --- a/ffi/capi/bindings/cpp/PluralRules.hpp +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef PluralRules_HPP -#define PluralRules_HPP - -#include "PluralRules.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "PluralCategories.hpp" -#include "PluralCategory.hpp" -#include "PluralOperands.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_PluralRules_create_cardinal_mv1_result {union {diplomat::capi::PluralRules* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_mv1_result; - icu4x_PluralRules_create_cardinal_mv1_result icu4x_PluralRules_create_cardinal_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_PluralRules_create_ordinal_mv1_result {union {diplomat::capi::PluralRules* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_mv1_result; - icu4x_PluralRules_create_ordinal_mv1_result icu4x_PluralRules_create_ordinal_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - diplomat::capi::PluralCategory icu4x_PluralRules_category_for_mv1(const diplomat::capi::PluralRules* self, const diplomat::capi::PluralOperands* op); - - diplomat::capi::PluralCategories icu4x_PluralRules_categories_mv1(const diplomat::capi::PluralRules* self); - - - void icu4x_PluralRules_destroy_mv1(PluralRules* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<PluralRules>, DataError> PluralRules::create_cardinal(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_PluralRules_create_cardinal_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PluralRules>, DataError>(diplomat::Ok<std::unique_ptr<PluralRules>>(std::unique_ptr<PluralRules>(PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PluralRules>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PluralRules>, DataError> PluralRules::create_ordinal(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_PluralRules_create_ordinal_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PluralRules>, DataError>(diplomat::Ok<std::unique_ptr<PluralRules>>(std::unique_ptr<PluralRules>(PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PluralRules>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline PluralCategory PluralRules::category_for(const PluralOperands& op) const { - auto result = diplomat::capi::icu4x_PluralRules_category_for_mv1(this->AsFFI(), - op.AsFFI()); - return PluralCategory::FromFFI(result); -} - -inline PluralCategories PluralRules::categories() const { - auto result = diplomat::capi::icu4x_PluralRules_categories_mv1(this->AsFFI()); - return PluralCategories::FromFFI(result); -} - -inline const diplomat::capi::PluralRules* PluralRules::AsFFI() const { - return reinterpret_cast<const diplomat::capi::PluralRules*>(this); -} - -inline diplomat::capi::PluralRules* PluralRules::AsFFI() { - return reinterpret_cast<diplomat::capi::PluralRules*>(this); -} - -inline const PluralRules* PluralRules::FromFFI(const diplomat::capi::PluralRules* ptr) { - return reinterpret_cast<const PluralRules*>(ptr); -} - -inline PluralRules* PluralRules::FromFFI(diplomat::capi::PluralRules* ptr) { - return reinterpret_cast<PluralRules*>(ptr); -} - -inline void PluralRules::operator delete(void* ptr) { - diplomat::capi::icu4x_PluralRules_destroy_mv1(reinterpret_cast<diplomat::capi::PluralRules*>(ptr)); -} - - -#endif // PluralRules_HPP diff --git a/ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.d.hpp b/ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.d.hpp deleted file mode 100644 index 8bacad106e5..00000000000 --- a/ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.d.hpp +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef PropertyValueNameToEnumMapper_D_HPP -#define PropertyValueNameToEnumMapper_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -class DataError; - - -namespace diplomat { -namespace capi { - struct PropertyValueNameToEnumMapper; -} // namespace capi -} // namespace - -class PropertyValueNameToEnumMapper { -public: - - inline int16_t get_strict(std::string_view name) const; - - inline int16_t get_loose(std::string_view name) const; - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_general_category(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_hangul_syllable_type(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_east_asian_width(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_bidi_class(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_indic_syllabic_category(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_line_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_grapheme_cluster_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_word_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_sentence_break(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> load_script(const DataProvider& provider); - - inline const diplomat::capi::PropertyValueNameToEnumMapper* AsFFI() const; - inline diplomat::capi::PropertyValueNameToEnumMapper* AsFFI(); - inline static const PropertyValueNameToEnumMapper* FromFFI(const diplomat::capi::PropertyValueNameToEnumMapper* ptr); - inline static PropertyValueNameToEnumMapper* FromFFI(diplomat::capi::PropertyValueNameToEnumMapper* ptr); - inline static void operator delete(void* ptr); -private: - PropertyValueNameToEnumMapper() = delete; - PropertyValueNameToEnumMapper(const PropertyValueNameToEnumMapper&) = delete; - PropertyValueNameToEnumMapper(PropertyValueNameToEnumMapper&&) noexcept = delete; - PropertyValueNameToEnumMapper operator=(const PropertyValueNameToEnumMapper&) = delete; - PropertyValueNameToEnumMapper operator=(PropertyValueNameToEnumMapper&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // PropertyValueNameToEnumMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.hpp b/ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.hpp deleted file mode 100644 index 06c89164d5e..00000000000 --- a/ffi/capi/bindings/cpp/PropertyValueNameToEnumMapper.hpp +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef PropertyValueNameToEnumMapper_HPP -#define PropertyValueNameToEnumMapper_HPP - -#include "PropertyValueNameToEnumMapper.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int16_t icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(const diplomat::capi::PropertyValueNameToEnumMapper* self, const char* name_data, size_t name_len); - - int16_t icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(const diplomat::capi::PropertyValueNameToEnumMapper* self, const char* name_data, size_t name_len); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1_result icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1_result icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1_result icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1_result icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1_result icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_PropertyValueNameToEnumMapper_load_script_mv1_result {union {diplomat::capi::PropertyValueNameToEnumMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_script_mv1_result; - icu4x_PropertyValueNameToEnumMapper_load_script_mv1_result icu4x_PropertyValueNameToEnumMapper_load_script_mv1(const diplomat::capi::DataProvider* provider); - - - void icu4x_PropertyValueNameToEnumMapper_destroy_mv1(PropertyValueNameToEnumMapper* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int16_t PropertyValueNameToEnumMapper::get_strict(std::string_view name) const { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(this->AsFFI(), - name.data(), - name.size()); - return result; -} - -inline int16_t PropertyValueNameToEnumMapper::get_loose(std::string_view name) const { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(this->AsFFI(), - name.data(), - name.size()); - return result; -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_general_category(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_hangul_syllable_type(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_east_asian_width(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_bidi_class(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_indic_syllabic_category(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_line_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_grapheme_cluster_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_word_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_sentence_break(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError> PropertyValueNameToEnumMapper::load_script(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_PropertyValueNameToEnumMapper_load_script_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Ok<std::unique_ptr<PropertyValueNameToEnumMapper>>(std::unique_ptr<PropertyValueNameToEnumMapper>(PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<PropertyValueNameToEnumMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline const diplomat::capi::PropertyValueNameToEnumMapper* PropertyValueNameToEnumMapper::AsFFI() const { - return reinterpret_cast<const diplomat::capi::PropertyValueNameToEnumMapper*>(this); -} - -inline diplomat::capi::PropertyValueNameToEnumMapper* PropertyValueNameToEnumMapper::AsFFI() { - return reinterpret_cast<diplomat::capi::PropertyValueNameToEnumMapper*>(this); -} - -inline const PropertyValueNameToEnumMapper* PropertyValueNameToEnumMapper::FromFFI(const diplomat::capi::PropertyValueNameToEnumMapper* ptr) { - return reinterpret_cast<const PropertyValueNameToEnumMapper*>(ptr); -} - -inline PropertyValueNameToEnumMapper* PropertyValueNameToEnumMapper::FromFFI(diplomat::capi::PropertyValueNameToEnumMapper* ptr) { - return reinterpret_cast<PropertyValueNameToEnumMapper*>(ptr); -} - -inline void PropertyValueNameToEnumMapper::operator delete(void* ptr) { - diplomat::capi::icu4x_PropertyValueNameToEnumMapper_destroy_mv1(reinterpret_cast<diplomat::capi::PropertyValueNameToEnumMapper*>(ptr)); -} - - -#endif // PropertyValueNameToEnumMapper_HPP diff --git a/ffi/capi/bindings/cpp/RegionDisplayNames.d.hpp b/ffi/capi/bindings/cpp/RegionDisplayNames.d.hpp deleted file mode 100644 index 818202d1e1d..00000000000 --- a/ffi/capi/bindings/cpp/RegionDisplayNames.d.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef RegionDisplayNames_D_HPP -#define RegionDisplayNames_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -class DataError; -class LocaleParseError; - - -namespace diplomat { -namespace capi { - struct RegionDisplayNames; -} // namespace capi -} // namespace - -class RegionDisplayNames { -public: - - inline static diplomat::result<std::unique_ptr<RegionDisplayNames>, DataError> create(const DataProvider& provider, const Locale& locale); - - inline diplomat::result<std::string, LocaleParseError> of(std::string_view region) const; - - inline const diplomat::capi::RegionDisplayNames* AsFFI() const; - inline diplomat::capi::RegionDisplayNames* AsFFI(); - inline static const RegionDisplayNames* FromFFI(const diplomat::capi::RegionDisplayNames* ptr); - inline static RegionDisplayNames* FromFFI(diplomat::capi::RegionDisplayNames* ptr); - inline static void operator delete(void* ptr); -private: - RegionDisplayNames() = delete; - RegionDisplayNames(const RegionDisplayNames&) = delete; - RegionDisplayNames(RegionDisplayNames&&) noexcept = delete; - RegionDisplayNames operator=(const RegionDisplayNames&) = delete; - RegionDisplayNames operator=(RegionDisplayNames&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // RegionDisplayNames_D_HPP diff --git a/ffi/capi/bindings/cpp/RegionDisplayNames.hpp b/ffi/capi/bindings/cpp/RegionDisplayNames.hpp deleted file mode 100644 index 148e34f8b16..00000000000 --- a/ffi/capi/bindings/cpp/RegionDisplayNames.hpp +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef RegionDisplayNames_HPP -#define RegionDisplayNames_HPP - -#include "RegionDisplayNames.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "LocaleParseError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_RegionDisplayNames_create_mv1_result {union {diplomat::capi::RegionDisplayNames* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_RegionDisplayNames_create_mv1_result; - icu4x_RegionDisplayNames_create_mv1_result icu4x_RegionDisplayNames_create_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_RegionDisplayNames_of_mv1_result {union { diplomat::capi::LocaleParseError err;}; bool is_ok;} icu4x_RegionDisplayNames_of_mv1_result; - icu4x_RegionDisplayNames_of_mv1_result icu4x_RegionDisplayNames_of_mv1(const diplomat::capi::RegionDisplayNames* self, const char* region_data, size_t region_len, diplomat::capi::DiplomatWrite* write); - - - void icu4x_RegionDisplayNames_destroy_mv1(RegionDisplayNames* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<RegionDisplayNames>, DataError> RegionDisplayNames::create(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_RegionDisplayNames_create_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<RegionDisplayNames>, DataError>(diplomat::Ok<std::unique_ptr<RegionDisplayNames>>(std::unique_ptr<RegionDisplayNames>(RegionDisplayNames::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<RegionDisplayNames>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::string, LocaleParseError> RegionDisplayNames::of(std::string_view region) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_RegionDisplayNames_of_mv1(this->AsFFI(), - region.data(), - region.size(), - &write); - return result.is_ok ? diplomat::result<std::string, LocaleParseError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, LocaleParseError>(diplomat::Err<LocaleParseError>(LocaleParseError::FromFFI(result.err))); -} - -inline const diplomat::capi::RegionDisplayNames* RegionDisplayNames::AsFFI() const { - return reinterpret_cast<const diplomat::capi::RegionDisplayNames*>(this); -} - -inline diplomat::capi::RegionDisplayNames* RegionDisplayNames::AsFFI() { - return reinterpret_cast<diplomat::capi::RegionDisplayNames*>(this); -} - -inline const RegionDisplayNames* RegionDisplayNames::FromFFI(const diplomat::capi::RegionDisplayNames* ptr) { - return reinterpret_cast<const RegionDisplayNames*>(ptr); -} - -inline RegionDisplayNames* RegionDisplayNames::FromFFI(diplomat::capi::RegionDisplayNames* ptr) { - return reinterpret_cast<RegionDisplayNames*>(ptr); -} - -inline void RegionDisplayNames::operator delete(void* ptr) { - diplomat::capi::icu4x_RegionDisplayNames_destroy_mv1(reinterpret_cast<diplomat::capi::RegionDisplayNames*>(ptr)); -} - - -#endif // RegionDisplayNames_HPP diff --git a/ffi/capi/bindings/cpp/ReorderedIndexMap.d.hpp b/ffi/capi/bindings/cpp/ReorderedIndexMap.d.hpp deleted file mode 100644 index e2b5fd23008..00000000000 --- a/ffi/capi/bindings/cpp/ReorderedIndexMap.d.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef ReorderedIndexMap_D_HPP -#define ReorderedIndexMap_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct ReorderedIndexMap; -} // namespace capi -} // namespace - -class ReorderedIndexMap { -public: - - inline diplomat::span<const size_t> as_slice() const; - - inline size_t len() const; - - inline bool is_empty() const; - - inline size_t get(size_t index) const; - - inline const diplomat::capi::ReorderedIndexMap* AsFFI() const; - inline diplomat::capi::ReorderedIndexMap* AsFFI(); - inline static const ReorderedIndexMap* FromFFI(const diplomat::capi::ReorderedIndexMap* ptr); - inline static ReorderedIndexMap* FromFFI(diplomat::capi::ReorderedIndexMap* ptr); - inline static void operator delete(void* ptr); -private: - ReorderedIndexMap() = delete; - ReorderedIndexMap(const ReorderedIndexMap&) = delete; - ReorderedIndexMap(ReorderedIndexMap&&) noexcept = delete; - ReorderedIndexMap operator=(const ReorderedIndexMap&) = delete; - ReorderedIndexMap operator=(ReorderedIndexMap&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // ReorderedIndexMap_D_HPP diff --git a/ffi/capi/bindings/cpp/ReorderedIndexMap.hpp b/ffi/capi/bindings/cpp/ReorderedIndexMap.hpp deleted file mode 100644 index 66fdd1f4061..00000000000 --- a/ffi/capi/bindings/cpp/ReorderedIndexMap.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef ReorderedIndexMap_HPP -#define ReorderedIndexMap_HPP - -#include "ReorderedIndexMap.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::DiplomatUsizeView icu4x_ReorderedIndexMap_as_slice_mv1(const diplomat::capi::ReorderedIndexMap* self); - - size_t icu4x_ReorderedIndexMap_len_mv1(const diplomat::capi::ReorderedIndexMap* self); - - bool icu4x_ReorderedIndexMap_is_empty_mv1(const diplomat::capi::ReorderedIndexMap* self); - - size_t icu4x_ReorderedIndexMap_get_mv1(const diplomat::capi::ReorderedIndexMap* self, size_t index); - - - void icu4x_ReorderedIndexMap_destroy_mv1(ReorderedIndexMap* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::span<const size_t> ReorderedIndexMap::as_slice() const { - auto result = diplomat::capi::icu4x_ReorderedIndexMap_as_slice_mv1(this->AsFFI()); - return diplomat::span<const size_t>(result.data, result.len); -} - -inline size_t ReorderedIndexMap::len() const { - auto result = diplomat::capi::icu4x_ReorderedIndexMap_len_mv1(this->AsFFI()); - return result; -} - -inline bool ReorderedIndexMap::is_empty() const { - auto result = diplomat::capi::icu4x_ReorderedIndexMap_is_empty_mv1(this->AsFFI()); - return result; -} - -inline size_t ReorderedIndexMap::get(size_t index) const { - auto result = diplomat::capi::icu4x_ReorderedIndexMap_get_mv1(this->AsFFI(), - index); - return result; -} - -inline const diplomat::capi::ReorderedIndexMap* ReorderedIndexMap::AsFFI() const { - return reinterpret_cast<const diplomat::capi::ReorderedIndexMap*>(this); -} - -inline diplomat::capi::ReorderedIndexMap* ReorderedIndexMap::AsFFI() { - return reinterpret_cast<diplomat::capi::ReorderedIndexMap*>(this); -} - -inline const ReorderedIndexMap* ReorderedIndexMap::FromFFI(const diplomat::capi::ReorderedIndexMap* ptr) { - return reinterpret_cast<const ReorderedIndexMap*>(ptr); -} - -inline ReorderedIndexMap* ReorderedIndexMap::FromFFI(diplomat::capi::ReorderedIndexMap* ptr) { - return reinterpret_cast<ReorderedIndexMap*>(ptr); -} - -inline void ReorderedIndexMap::operator delete(void* ptr) { - diplomat::capi::icu4x_ReorderedIndexMap_destroy_mv1(reinterpret_cast<diplomat::capi::ReorderedIndexMap*>(ptr)); -} - - -#endif // ReorderedIndexMap_HPP diff --git a/ffi/capi/bindings/cpp/ScriptExtensionsSet.d.hpp b/ffi/capi/bindings/cpp/ScriptExtensionsSet.d.hpp deleted file mode 100644 index 12c87dca853..00000000000 --- a/ffi/capi/bindings/cpp/ScriptExtensionsSet.d.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef ScriptExtensionsSet_D_HPP -#define ScriptExtensionsSet_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct ScriptExtensionsSet; -} // namespace capi -} // namespace - -class ScriptExtensionsSet { -public: - - inline bool contains(uint16_t script) const; - - inline size_t count() const; - - inline std::optional<uint16_t> script_at(size_t index) const; - - inline const diplomat::capi::ScriptExtensionsSet* AsFFI() const; - inline diplomat::capi::ScriptExtensionsSet* AsFFI(); - inline static const ScriptExtensionsSet* FromFFI(const diplomat::capi::ScriptExtensionsSet* ptr); - inline static ScriptExtensionsSet* FromFFI(diplomat::capi::ScriptExtensionsSet* ptr); - inline static void operator delete(void* ptr); -private: - ScriptExtensionsSet() = delete; - ScriptExtensionsSet(const ScriptExtensionsSet&) = delete; - ScriptExtensionsSet(ScriptExtensionsSet&&) noexcept = delete; - ScriptExtensionsSet operator=(const ScriptExtensionsSet&) = delete; - ScriptExtensionsSet operator=(ScriptExtensionsSet&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // ScriptExtensionsSet_D_HPP diff --git a/ffi/capi/bindings/cpp/ScriptExtensionsSet.hpp b/ffi/capi/bindings/cpp/ScriptExtensionsSet.hpp deleted file mode 100644 index b36d02c52e7..00000000000 --- a/ffi/capi/bindings/cpp/ScriptExtensionsSet.hpp +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef ScriptExtensionsSet_HPP -#define ScriptExtensionsSet_HPP - -#include "ScriptExtensionsSet.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - bool icu4x_ScriptExtensionsSet_contains_mv1(const diplomat::capi::ScriptExtensionsSet* self, uint16_t script); - - size_t icu4x_ScriptExtensionsSet_count_mv1(const diplomat::capi::ScriptExtensionsSet* self); - - typedef struct icu4x_ScriptExtensionsSet_script_at_mv1_result {union {uint16_t ok; }; bool is_ok;} icu4x_ScriptExtensionsSet_script_at_mv1_result; - icu4x_ScriptExtensionsSet_script_at_mv1_result icu4x_ScriptExtensionsSet_script_at_mv1(const diplomat::capi::ScriptExtensionsSet* self, size_t index); - - - void icu4x_ScriptExtensionsSet_destroy_mv1(ScriptExtensionsSet* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline bool ScriptExtensionsSet::contains(uint16_t script) const { - auto result = diplomat::capi::icu4x_ScriptExtensionsSet_contains_mv1(this->AsFFI(), - script); - return result; -} - -inline size_t ScriptExtensionsSet::count() const { - auto result = diplomat::capi::icu4x_ScriptExtensionsSet_count_mv1(this->AsFFI()); - return result; -} - -inline std::optional<uint16_t> ScriptExtensionsSet::script_at(size_t index) const { - auto result = diplomat::capi::icu4x_ScriptExtensionsSet_script_at_mv1(this->AsFFI(), - index); - return result.is_ok ? std::optional<uint16_t>(result.ok) : std::nullopt; -} - -inline const diplomat::capi::ScriptExtensionsSet* ScriptExtensionsSet::AsFFI() const { - return reinterpret_cast<const diplomat::capi::ScriptExtensionsSet*>(this); -} - -inline diplomat::capi::ScriptExtensionsSet* ScriptExtensionsSet::AsFFI() { - return reinterpret_cast<diplomat::capi::ScriptExtensionsSet*>(this); -} - -inline const ScriptExtensionsSet* ScriptExtensionsSet::FromFFI(const diplomat::capi::ScriptExtensionsSet* ptr) { - return reinterpret_cast<const ScriptExtensionsSet*>(ptr); -} - -inline ScriptExtensionsSet* ScriptExtensionsSet::FromFFI(diplomat::capi::ScriptExtensionsSet* ptr) { - return reinterpret_cast<ScriptExtensionsSet*>(ptr); -} - -inline void ScriptExtensionsSet::operator delete(void* ptr) { - diplomat::capi::icu4x_ScriptExtensionsSet_destroy_mv1(reinterpret_cast<diplomat::capi::ScriptExtensionsSet*>(ptr)); -} - - -#endif // ScriptExtensionsSet_HPP diff --git a/ffi/capi/bindings/cpp/ScriptWithExtensions.d.hpp b/ffi/capi/bindings/cpp/ScriptWithExtensions.d.hpp deleted file mode 100644 index e2cf792a08f..00000000000 --- a/ffi/capi/bindings/cpp/ScriptWithExtensions.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef ScriptWithExtensions_D_HPP -#define ScriptWithExtensions_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointRangeIterator; } -class CodePointRangeIterator; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct ScriptWithExtensionsBorrowed; } -class ScriptWithExtensionsBorrowed; -class DataError; - - -namespace diplomat { -namespace capi { - struct ScriptWithExtensions; -} // namespace capi -} // namespace - -class ScriptWithExtensions { -public: - - inline static diplomat::result<std::unique_ptr<ScriptWithExtensions>, DataError> create(const DataProvider& provider); - - inline uint16_t get_script_val(uint32_t code_point) const; - - inline bool has_script(uint32_t code_point, uint16_t script) const; - - inline std::unique_ptr<ScriptWithExtensionsBorrowed> as_borrowed() const; - - inline std::unique_ptr<CodePointRangeIterator> iter_ranges_for_script(uint16_t script) const; - - inline const diplomat::capi::ScriptWithExtensions* AsFFI() const; - inline diplomat::capi::ScriptWithExtensions* AsFFI(); - inline static const ScriptWithExtensions* FromFFI(const diplomat::capi::ScriptWithExtensions* ptr); - inline static ScriptWithExtensions* FromFFI(diplomat::capi::ScriptWithExtensions* ptr); - inline static void operator delete(void* ptr); -private: - ScriptWithExtensions() = delete; - ScriptWithExtensions(const ScriptWithExtensions&) = delete; - ScriptWithExtensions(ScriptWithExtensions&&) noexcept = delete; - ScriptWithExtensions operator=(const ScriptWithExtensions&) = delete; - ScriptWithExtensions operator=(ScriptWithExtensions&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // ScriptWithExtensions_D_HPP diff --git a/ffi/capi/bindings/cpp/ScriptWithExtensions.hpp b/ffi/capi/bindings/cpp/ScriptWithExtensions.hpp deleted file mode 100644 index 769ec234c05..00000000000 --- a/ffi/capi/bindings/cpp/ScriptWithExtensions.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef ScriptWithExtensions_HPP -#define ScriptWithExtensions_HPP - -#include "ScriptWithExtensions.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointRangeIterator.hpp" -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "ScriptWithExtensionsBorrowed.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_ScriptWithExtensions_create_mv1_result {union {diplomat::capi::ScriptWithExtensions* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_ScriptWithExtensions_create_mv1_result; - icu4x_ScriptWithExtensions_create_mv1_result icu4x_ScriptWithExtensions_create_mv1(const diplomat::capi::DataProvider* provider); - - uint16_t icu4x_ScriptWithExtensions_get_script_val_mv1(const diplomat::capi::ScriptWithExtensions* self, uint32_t code_point); - - bool icu4x_ScriptWithExtensions_has_script_mv1(const diplomat::capi::ScriptWithExtensions* self, uint32_t code_point, uint16_t script); - - diplomat::capi::ScriptWithExtensionsBorrowed* icu4x_ScriptWithExtensions_as_borrowed_mv1(const diplomat::capi::ScriptWithExtensions* self); - - diplomat::capi::CodePointRangeIterator* icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(const diplomat::capi::ScriptWithExtensions* self, uint16_t script); - - - void icu4x_ScriptWithExtensions_destroy_mv1(ScriptWithExtensions* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<ScriptWithExtensions>, DataError> ScriptWithExtensions::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_ScriptWithExtensions_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ScriptWithExtensions>, DataError>(diplomat::Ok<std::unique_ptr<ScriptWithExtensions>>(std::unique_ptr<ScriptWithExtensions>(ScriptWithExtensions::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ScriptWithExtensions>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline uint16_t ScriptWithExtensions::get_script_val(uint32_t code_point) const { - auto result = diplomat::capi::icu4x_ScriptWithExtensions_get_script_val_mv1(this->AsFFI(), - code_point); - return result; -} - -inline bool ScriptWithExtensions::has_script(uint32_t code_point, uint16_t script) const { - auto result = diplomat::capi::icu4x_ScriptWithExtensions_has_script_mv1(this->AsFFI(), - code_point, - script); - return result; -} - -inline std::unique_ptr<ScriptWithExtensionsBorrowed> ScriptWithExtensions::as_borrowed() const { - auto result = diplomat::capi::icu4x_ScriptWithExtensions_as_borrowed_mv1(this->AsFFI()); - return std::unique_ptr<ScriptWithExtensionsBorrowed>(ScriptWithExtensionsBorrowed::FromFFI(result)); -} - -inline std::unique_ptr<CodePointRangeIterator> ScriptWithExtensions::iter_ranges_for_script(uint16_t script) const { - auto result = diplomat::capi::icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(this->AsFFI(), - script); - return std::unique_ptr<CodePointRangeIterator>(CodePointRangeIterator::FromFFI(result)); -} - -inline const diplomat::capi::ScriptWithExtensions* ScriptWithExtensions::AsFFI() const { - return reinterpret_cast<const diplomat::capi::ScriptWithExtensions*>(this); -} - -inline diplomat::capi::ScriptWithExtensions* ScriptWithExtensions::AsFFI() { - return reinterpret_cast<diplomat::capi::ScriptWithExtensions*>(this); -} - -inline const ScriptWithExtensions* ScriptWithExtensions::FromFFI(const diplomat::capi::ScriptWithExtensions* ptr) { - return reinterpret_cast<const ScriptWithExtensions*>(ptr); -} - -inline ScriptWithExtensions* ScriptWithExtensions::FromFFI(diplomat::capi::ScriptWithExtensions* ptr) { - return reinterpret_cast<ScriptWithExtensions*>(ptr); -} - -inline void ScriptWithExtensions::operator delete(void* ptr) { - diplomat::capi::icu4x_ScriptWithExtensions_destroy_mv1(reinterpret_cast<diplomat::capi::ScriptWithExtensions*>(ptr)); -} - - -#endif // ScriptWithExtensions_HPP diff --git a/ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.d.hpp b/ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.d.hpp deleted file mode 100644 index 73db9b2e108..00000000000 --- a/ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.d.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef ScriptWithExtensionsBorrowed_D_HPP -#define ScriptWithExtensionsBorrowed_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CodePointSetData; } -class CodePointSetData; -namespace diplomat::capi { struct ScriptExtensionsSet; } -class ScriptExtensionsSet; - - -namespace diplomat { -namespace capi { - struct ScriptWithExtensionsBorrowed; -} // namespace capi -} // namespace - -class ScriptWithExtensionsBorrowed { -public: - - inline uint16_t get_script_val(uint32_t code_point) const; - - inline std::unique_ptr<ScriptExtensionsSet> get_script_extensions_val(uint32_t code_point) const; - - inline bool has_script(uint32_t code_point, uint16_t script) const; - - inline std::unique_ptr<CodePointSetData> get_script_extensions_set(uint16_t script) const; - - inline const diplomat::capi::ScriptWithExtensionsBorrowed* AsFFI() const; - inline diplomat::capi::ScriptWithExtensionsBorrowed* AsFFI(); - inline static const ScriptWithExtensionsBorrowed* FromFFI(const diplomat::capi::ScriptWithExtensionsBorrowed* ptr); - inline static ScriptWithExtensionsBorrowed* FromFFI(diplomat::capi::ScriptWithExtensionsBorrowed* ptr); - inline static void operator delete(void* ptr); -private: - ScriptWithExtensionsBorrowed() = delete; - ScriptWithExtensionsBorrowed(const ScriptWithExtensionsBorrowed&) = delete; - ScriptWithExtensionsBorrowed(ScriptWithExtensionsBorrowed&&) noexcept = delete; - ScriptWithExtensionsBorrowed operator=(const ScriptWithExtensionsBorrowed&) = delete; - ScriptWithExtensionsBorrowed operator=(ScriptWithExtensionsBorrowed&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // ScriptWithExtensionsBorrowed_D_HPP diff --git a/ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.hpp b/ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.hpp deleted file mode 100644 index 23c0ab91c64..00000000000 --- a/ffi/capi/bindings/cpp/ScriptWithExtensionsBorrowed.hpp +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef ScriptWithExtensionsBorrowed_HPP -#define ScriptWithExtensionsBorrowed_HPP - -#include "ScriptWithExtensionsBorrowed.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CodePointSetData.hpp" -#include "ScriptExtensionsSet.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - uint16_t icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(const diplomat::capi::ScriptWithExtensionsBorrowed* self, uint32_t code_point); - - diplomat::capi::ScriptExtensionsSet* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(const diplomat::capi::ScriptWithExtensionsBorrowed* self, uint32_t code_point); - - bool icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(const diplomat::capi::ScriptWithExtensionsBorrowed* self, uint32_t code_point, uint16_t script); - - diplomat::capi::CodePointSetData* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(const diplomat::capi::ScriptWithExtensionsBorrowed* self, uint16_t script); - - - void icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(ScriptWithExtensionsBorrowed* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline uint16_t ScriptWithExtensionsBorrowed::get_script_val(uint32_t code_point) const { - auto result = diplomat::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(this->AsFFI(), - code_point); - return result; -} - -inline std::unique_ptr<ScriptExtensionsSet> ScriptWithExtensionsBorrowed::get_script_extensions_val(uint32_t code_point) const { - auto result = diplomat::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(this->AsFFI(), - code_point); - return std::unique_ptr<ScriptExtensionsSet>(ScriptExtensionsSet::FromFFI(result)); -} - -inline bool ScriptWithExtensionsBorrowed::has_script(uint32_t code_point, uint16_t script) const { - auto result = diplomat::capi::icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(this->AsFFI(), - code_point, - script); - return result; -} - -inline std::unique_ptr<CodePointSetData> ScriptWithExtensionsBorrowed::get_script_extensions_set(uint16_t script) const { - auto result = diplomat::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(this->AsFFI(), - script); - return std::unique_ptr<CodePointSetData>(CodePointSetData::FromFFI(result)); -} - -inline const diplomat::capi::ScriptWithExtensionsBorrowed* ScriptWithExtensionsBorrowed::AsFFI() const { - return reinterpret_cast<const diplomat::capi::ScriptWithExtensionsBorrowed*>(this); -} - -inline diplomat::capi::ScriptWithExtensionsBorrowed* ScriptWithExtensionsBorrowed::AsFFI() { - return reinterpret_cast<diplomat::capi::ScriptWithExtensionsBorrowed*>(this); -} - -inline const ScriptWithExtensionsBorrowed* ScriptWithExtensionsBorrowed::FromFFI(const diplomat::capi::ScriptWithExtensionsBorrowed* ptr) { - return reinterpret_cast<const ScriptWithExtensionsBorrowed*>(ptr); -} - -inline ScriptWithExtensionsBorrowed* ScriptWithExtensionsBorrowed::FromFFI(diplomat::capi::ScriptWithExtensionsBorrowed* ptr) { - return reinterpret_cast<ScriptWithExtensionsBorrowed*>(ptr); -} - -inline void ScriptWithExtensionsBorrowed::operator delete(void* ptr) { - diplomat::capi::icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(reinterpret_cast<diplomat::capi::ScriptWithExtensionsBorrowed*>(ptr)); -} - - -#endif // ScriptWithExtensionsBorrowed_HPP diff --git a/ffi/capi/bindings/cpp/SegmenterWordType.hpp b/ffi/capi/bindings/cpp/SegmenterWordType.hpp deleted file mode 100644 index 39d9052371e..00000000000 --- a/ffi/capi/bindings/cpp/SegmenterWordType.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef SegmenterWordType_HPP -#define SegmenterWordType_HPP - -#include "SegmenterWordType.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - bool icu4x_SegmenterWordType_is_word_like_mv1(diplomat::capi::SegmenterWordType self); - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::SegmenterWordType SegmenterWordType::AsFFI() const { - return static_cast<diplomat::capi::SegmenterWordType>(value); -} - -inline SegmenterWordType SegmenterWordType::FromFFI(diplomat::capi::SegmenterWordType c_enum) { - switch (c_enum) { - case diplomat::capi::SegmenterWordType_None: - case diplomat::capi::SegmenterWordType_Number: - case diplomat::capi::SegmenterWordType_Letter: - return static_cast<SegmenterWordType::Value>(c_enum); - default: - abort(); - } -} - -inline bool SegmenterWordType::is_word_like() { - auto result = diplomat::capi::icu4x_SegmenterWordType_is_word_like_mv1(this->AsFFI()); - return result; -} -#endif // SegmenterWordType_HPP diff --git a/ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.d.hpp deleted file mode 100644 index 0c6f17386aa..00000000000 --- a/ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef SentenceBreakIteratorLatin1_D_HPP -#define SentenceBreakIteratorLatin1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct SentenceBreakIteratorLatin1; -} // namespace capi -} // namespace - -class SentenceBreakIteratorLatin1 { -public: - - inline int32_t next(); - - inline const diplomat::capi::SentenceBreakIteratorLatin1* AsFFI() const; - inline diplomat::capi::SentenceBreakIteratorLatin1* AsFFI(); - inline static const SentenceBreakIteratorLatin1* FromFFI(const diplomat::capi::SentenceBreakIteratorLatin1* ptr); - inline static SentenceBreakIteratorLatin1* FromFFI(diplomat::capi::SentenceBreakIteratorLatin1* ptr); - inline static void operator delete(void* ptr); -private: - SentenceBreakIteratorLatin1() = delete; - SentenceBreakIteratorLatin1(const SentenceBreakIteratorLatin1&) = delete; - SentenceBreakIteratorLatin1(SentenceBreakIteratorLatin1&&) noexcept = delete; - SentenceBreakIteratorLatin1 operator=(const SentenceBreakIteratorLatin1&) = delete; - SentenceBreakIteratorLatin1 operator=(SentenceBreakIteratorLatin1&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // SentenceBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.hpp deleted file mode 100644 index d4394fb7ae3..00000000000 --- a/ffi/capi/bindings/cpp/SentenceBreakIteratorLatin1.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef SentenceBreakIteratorLatin1_HPP -#define SentenceBreakIteratorLatin1_HPP - -#include "SentenceBreakIteratorLatin1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_SentenceBreakIteratorLatin1_next_mv1(diplomat::capi::SentenceBreakIteratorLatin1* self); - - - void icu4x_SentenceBreakIteratorLatin1_destroy_mv1(SentenceBreakIteratorLatin1* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t SentenceBreakIteratorLatin1::next() { - auto result = diplomat::capi::icu4x_SentenceBreakIteratorLatin1_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::SentenceBreakIteratorLatin1* SentenceBreakIteratorLatin1::AsFFI() const { - return reinterpret_cast<const diplomat::capi::SentenceBreakIteratorLatin1*>(this); -} - -inline diplomat::capi::SentenceBreakIteratorLatin1* SentenceBreakIteratorLatin1::AsFFI() { - return reinterpret_cast<diplomat::capi::SentenceBreakIteratorLatin1*>(this); -} - -inline const SentenceBreakIteratorLatin1* SentenceBreakIteratorLatin1::FromFFI(const diplomat::capi::SentenceBreakIteratorLatin1* ptr) { - return reinterpret_cast<const SentenceBreakIteratorLatin1*>(ptr); -} - -inline SentenceBreakIteratorLatin1* SentenceBreakIteratorLatin1::FromFFI(diplomat::capi::SentenceBreakIteratorLatin1* ptr) { - return reinterpret_cast<SentenceBreakIteratorLatin1*>(ptr); -} - -inline void SentenceBreakIteratorLatin1::operator delete(void* ptr) { - diplomat::capi::icu4x_SentenceBreakIteratorLatin1_destroy_mv1(reinterpret_cast<diplomat::capi::SentenceBreakIteratorLatin1*>(ptr)); -} - - -#endif // SentenceBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.d.hpp deleted file mode 100644 index b2991968b6e..00000000000 --- a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef SentenceBreakIteratorUtf16_D_HPP -#define SentenceBreakIteratorUtf16_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct SentenceBreakIteratorUtf16; -} // namespace capi -} // namespace - -class SentenceBreakIteratorUtf16 { -public: - - inline int32_t next(); - - inline const diplomat::capi::SentenceBreakIteratorUtf16* AsFFI() const; - inline diplomat::capi::SentenceBreakIteratorUtf16* AsFFI(); - inline static const SentenceBreakIteratorUtf16* FromFFI(const diplomat::capi::SentenceBreakIteratorUtf16* ptr); - inline static SentenceBreakIteratorUtf16* FromFFI(diplomat::capi::SentenceBreakIteratorUtf16* ptr); - inline static void operator delete(void* ptr); -private: - SentenceBreakIteratorUtf16() = delete; - SentenceBreakIteratorUtf16(const SentenceBreakIteratorUtf16&) = delete; - SentenceBreakIteratorUtf16(SentenceBreakIteratorUtf16&&) noexcept = delete; - SentenceBreakIteratorUtf16 operator=(const SentenceBreakIteratorUtf16&) = delete; - SentenceBreakIteratorUtf16 operator=(SentenceBreakIteratorUtf16&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // SentenceBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.hpp deleted file mode 100644 index 5fc25028b5a..00000000000 --- a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf16.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef SentenceBreakIteratorUtf16_HPP -#define SentenceBreakIteratorUtf16_HPP - -#include "SentenceBreakIteratorUtf16.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_SentenceBreakIteratorUtf16_next_mv1(diplomat::capi::SentenceBreakIteratorUtf16* self); - - - void icu4x_SentenceBreakIteratorUtf16_destroy_mv1(SentenceBreakIteratorUtf16* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t SentenceBreakIteratorUtf16::next() { - auto result = diplomat::capi::icu4x_SentenceBreakIteratorUtf16_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::SentenceBreakIteratorUtf16* SentenceBreakIteratorUtf16::AsFFI() const { - return reinterpret_cast<const diplomat::capi::SentenceBreakIteratorUtf16*>(this); -} - -inline diplomat::capi::SentenceBreakIteratorUtf16* SentenceBreakIteratorUtf16::AsFFI() { - return reinterpret_cast<diplomat::capi::SentenceBreakIteratorUtf16*>(this); -} - -inline const SentenceBreakIteratorUtf16* SentenceBreakIteratorUtf16::FromFFI(const diplomat::capi::SentenceBreakIteratorUtf16* ptr) { - return reinterpret_cast<const SentenceBreakIteratorUtf16*>(ptr); -} - -inline SentenceBreakIteratorUtf16* SentenceBreakIteratorUtf16::FromFFI(diplomat::capi::SentenceBreakIteratorUtf16* ptr) { - return reinterpret_cast<SentenceBreakIteratorUtf16*>(ptr); -} - -inline void SentenceBreakIteratorUtf16::operator delete(void* ptr) { - diplomat::capi::icu4x_SentenceBreakIteratorUtf16_destroy_mv1(reinterpret_cast<diplomat::capi::SentenceBreakIteratorUtf16*>(ptr)); -} - - -#endif // SentenceBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.d.hpp deleted file mode 100644 index e48f79c9375..00000000000 --- a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef SentenceBreakIteratorUtf8_D_HPP -#define SentenceBreakIteratorUtf8_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct SentenceBreakIteratorUtf8; -} // namespace capi -} // namespace - -class SentenceBreakIteratorUtf8 { -public: - - inline int32_t next(); - - inline const diplomat::capi::SentenceBreakIteratorUtf8* AsFFI() const; - inline diplomat::capi::SentenceBreakIteratorUtf8* AsFFI(); - inline static const SentenceBreakIteratorUtf8* FromFFI(const diplomat::capi::SentenceBreakIteratorUtf8* ptr); - inline static SentenceBreakIteratorUtf8* FromFFI(diplomat::capi::SentenceBreakIteratorUtf8* ptr); - inline static void operator delete(void* ptr); -private: - SentenceBreakIteratorUtf8() = delete; - SentenceBreakIteratorUtf8(const SentenceBreakIteratorUtf8&) = delete; - SentenceBreakIteratorUtf8(SentenceBreakIteratorUtf8&&) noexcept = delete; - SentenceBreakIteratorUtf8 operator=(const SentenceBreakIteratorUtf8&) = delete; - SentenceBreakIteratorUtf8 operator=(SentenceBreakIteratorUtf8&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // SentenceBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.hpp deleted file mode 100644 index f6a2c2d7499..00000000000 --- a/ffi/capi/bindings/cpp/SentenceBreakIteratorUtf8.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef SentenceBreakIteratorUtf8_HPP -#define SentenceBreakIteratorUtf8_HPP - -#include "SentenceBreakIteratorUtf8.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_SentenceBreakIteratorUtf8_next_mv1(diplomat::capi::SentenceBreakIteratorUtf8* self); - - - void icu4x_SentenceBreakIteratorUtf8_destroy_mv1(SentenceBreakIteratorUtf8* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t SentenceBreakIteratorUtf8::next() { - auto result = diplomat::capi::icu4x_SentenceBreakIteratorUtf8_next_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::SentenceBreakIteratorUtf8* SentenceBreakIteratorUtf8::AsFFI() const { - return reinterpret_cast<const diplomat::capi::SentenceBreakIteratorUtf8*>(this); -} - -inline diplomat::capi::SentenceBreakIteratorUtf8* SentenceBreakIteratorUtf8::AsFFI() { - return reinterpret_cast<diplomat::capi::SentenceBreakIteratorUtf8*>(this); -} - -inline const SentenceBreakIteratorUtf8* SentenceBreakIteratorUtf8::FromFFI(const diplomat::capi::SentenceBreakIteratorUtf8* ptr) { - return reinterpret_cast<const SentenceBreakIteratorUtf8*>(ptr); -} - -inline SentenceBreakIteratorUtf8* SentenceBreakIteratorUtf8::FromFFI(diplomat::capi::SentenceBreakIteratorUtf8* ptr) { - return reinterpret_cast<SentenceBreakIteratorUtf8*>(ptr); -} - -inline void SentenceBreakIteratorUtf8::operator delete(void* ptr) { - diplomat::capi::icu4x_SentenceBreakIteratorUtf8_destroy_mv1(reinterpret_cast<diplomat::capi::SentenceBreakIteratorUtf8*>(ptr)); -} - - -#endif // SentenceBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/SentenceSegmenter.d.hpp b/ffi/capi/bindings/cpp/SentenceSegmenter.d.hpp deleted file mode 100644 index 92361411d44..00000000000 --- a/ffi/capi/bindings/cpp/SentenceSegmenter.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef SentenceSegmenter_D_HPP -#define SentenceSegmenter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct SentenceBreakIteratorLatin1; } -class SentenceBreakIteratorLatin1; -namespace diplomat::capi { struct SentenceBreakIteratorUtf16; } -class SentenceBreakIteratorUtf16; -namespace diplomat::capi { struct SentenceBreakIteratorUtf8; } -class SentenceBreakIteratorUtf8; -class DataError; - - -namespace diplomat { -namespace capi { - struct SentenceSegmenter; -} // namespace capi -} // namespace - -class SentenceSegmenter { -public: - - inline static diplomat::result<std::unique_ptr<SentenceSegmenter>, DataError> create(const DataProvider& provider); - - inline std::unique_ptr<SentenceBreakIteratorUtf8> segment(std::string_view input) const; - - inline std::unique_ptr<SentenceBreakIteratorUtf16> segment16(std::u16string_view input) const; - - inline std::unique_ptr<SentenceBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; - - inline const diplomat::capi::SentenceSegmenter* AsFFI() const; - inline diplomat::capi::SentenceSegmenter* AsFFI(); - inline static const SentenceSegmenter* FromFFI(const diplomat::capi::SentenceSegmenter* ptr); - inline static SentenceSegmenter* FromFFI(diplomat::capi::SentenceSegmenter* ptr); - inline static void operator delete(void* ptr); -private: - SentenceSegmenter() = delete; - SentenceSegmenter(const SentenceSegmenter&) = delete; - SentenceSegmenter(SentenceSegmenter&&) noexcept = delete; - SentenceSegmenter operator=(const SentenceSegmenter&) = delete; - SentenceSegmenter operator=(SentenceSegmenter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // SentenceSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/SentenceSegmenter.hpp b/ffi/capi/bindings/cpp/SentenceSegmenter.hpp deleted file mode 100644 index 0c0fff10307..00000000000 --- a/ffi/capi/bindings/cpp/SentenceSegmenter.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef SentenceSegmenter_HPP -#define SentenceSegmenter_HPP - -#include "SentenceSegmenter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "SentenceBreakIteratorLatin1.hpp" -#include "SentenceBreakIteratorUtf16.hpp" -#include "SentenceBreakIteratorUtf8.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_SentenceSegmenter_create_mv1_result {union {diplomat::capi::SentenceSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_SentenceSegmenter_create_mv1_result; - icu4x_SentenceSegmenter_create_mv1_result icu4x_SentenceSegmenter_create_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::SentenceBreakIteratorUtf8* icu4x_SentenceSegmenter_segment_utf8_mv1(const diplomat::capi::SentenceSegmenter* self, const char* input_data, size_t input_len); - - diplomat::capi::SentenceBreakIteratorUtf16* icu4x_SentenceSegmenter_segment_utf16_mv1(const diplomat::capi::SentenceSegmenter* self, const char16_t* input_data, size_t input_len); - - diplomat::capi::SentenceBreakIteratorLatin1* icu4x_SentenceSegmenter_segment_latin1_mv1(const diplomat::capi::SentenceSegmenter* self, const uint8_t* input_data, size_t input_len); - - - void icu4x_SentenceSegmenter_destroy_mv1(SentenceSegmenter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<SentenceSegmenter>, DataError> SentenceSegmenter::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_SentenceSegmenter_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<SentenceSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<SentenceSegmenter>>(std::unique_ptr<SentenceSegmenter>(SentenceSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<SentenceSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<SentenceBreakIteratorUtf8> SentenceSegmenter::segment(std::string_view input) const { - auto result = diplomat::capi::icu4x_SentenceSegmenter_segment_utf8_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<SentenceBreakIteratorUtf8>(SentenceBreakIteratorUtf8::FromFFI(result)); -} - -inline std::unique_ptr<SentenceBreakIteratorUtf16> SentenceSegmenter::segment16(std::u16string_view input) const { - auto result = diplomat::capi::icu4x_SentenceSegmenter_segment_utf16_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<SentenceBreakIteratorUtf16>(SentenceBreakIteratorUtf16::FromFFI(result)); -} - -inline std::unique_ptr<SentenceBreakIteratorLatin1> SentenceSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { - auto result = diplomat::capi::icu4x_SentenceSegmenter_segment_latin1_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<SentenceBreakIteratorLatin1>(SentenceBreakIteratorLatin1::FromFFI(result)); -} - -inline const diplomat::capi::SentenceSegmenter* SentenceSegmenter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::SentenceSegmenter*>(this); -} - -inline diplomat::capi::SentenceSegmenter* SentenceSegmenter::AsFFI() { - return reinterpret_cast<diplomat::capi::SentenceSegmenter*>(this); -} - -inline const SentenceSegmenter* SentenceSegmenter::FromFFI(const diplomat::capi::SentenceSegmenter* ptr) { - return reinterpret_cast<const SentenceSegmenter*>(ptr); -} - -inline SentenceSegmenter* SentenceSegmenter::FromFFI(diplomat::capi::SentenceSegmenter* ptr) { - return reinterpret_cast<SentenceSegmenter*>(ptr); -} - -inline void SentenceSegmenter::operator delete(void* ptr) { - diplomat::capi::icu4x_SentenceSegmenter_destroy_mv1(reinterpret_cast<diplomat::capi::SentenceSegmenter*>(ptr)); -} - - -#endif // SentenceSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/Time.d.hpp b/ffi/capi/bindings/cpp/Time.d.hpp deleted file mode 100644 index ee6323b2d03..00000000000 --- a/ffi/capi/bindings/cpp/Time.d.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef Time_D_HPP -#define Time_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -class CalendarError; -class CalendarParseError; - - -namespace diplomat { -namespace capi { - struct Time; -} // namespace capi -} // namespace - -class Time { -public: - - inline static diplomat::result<std::unique_ptr<Time>, CalendarError> create(uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); - - inline static diplomat::result<std::unique_ptr<Time>, CalendarParseError> from_string(std::string_view v); - - inline static diplomat::result<std::unique_ptr<Time>, CalendarError> midnight(); - - inline uint8_t hour() const; - - inline uint8_t minute() const; - - inline uint8_t second() const; - - inline uint32_t nanosecond() const; - - inline const diplomat::capi::Time* AsFFI() const; - inline diplomat::capi::Time* AsFFI(); - inline static const Time* FromFFI(const diplomat::capi::Time* ptr); - inline static Time* FromFFI(diplomat::capi::Time* ptr); - inline static void operator delete(void* ptr); -private: - Time() = delete; - Time(const Time&) = delete; - Time(Time&&) noexcept = delete; - Time operator=(const Time&) = delete; - Time operator=(Time&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // Time_D_HPP diff --git a/ffi/capi/bindings/cpp/Time.hpp b/ffi/capi/bindings/cpp/Time.hpp deleted file mode 100644 index 712e08f8dfa..00000000000 --- a/ffi/capi/bindings/cpp/Time.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef Time_HPP -#define Time_HPP - -#include "Time.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CalendarError.hpp" -#include "CalendarParseError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_Time_create_mv1_result {union {diplomat::capi::Time* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_Time_create_mv1_result; - icu4x_Time_create_mv1_result icu4x_Time_create_mv1(uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); - - typedef struct icu4x_Time_from_string_mv1_result {union {diplomat::capi::Time* ok; diplomat::capi::CalendarParseError err;}; bool is_ok;} icu4x_Time_from_string_mv1_result; - icu4x_Time_from_string_mv1_result icu4x_Time_from_string_mv1(const char* v_data, size_t v_len); - - typedef struct icu4x_Time_midnight_mv1_result {union {diplomat::capi::Time* ok; diplomat::capi::CalendarError err;}; bool is_ok;} icu4x_Time_midnight_mv1_result; - icu4x_Time_midnight_mv1_result icu4x_Time_midnight_mv1(void); - - uint8_t icu4x_Time_hour_mv1(const diplomat::capi::Time* self); - - uint8_t icu4x_Time_minute_mv1(const diplomat::capi::Time* self); - - uint8_t icu4x_Time_second_mv1(const diplomat::capi::Time* self); - - uint32_t icu4x_Time_nanosecond_mv1(const diplomat::capi::Time* self); - - - void icu4x_Time_destroy_mv1(Time* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<Time>, CalendarError> Time::create(uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond) { - auto result = diplomat::capi::icu4x_Time_create_mv1(hour, - minute, - second, - nanosecond); - return result.is_ok ? diplomat::result<std::unique_ptr<Time>, CalendarError>(diplomat::Ok<std::unique_ptr<Time>>(std::unique_ptr<Time>(Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Time>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<Time>, CalendarParseError> Time::from_string(std::string_view v) { - auto result = diplomat::capi::icu4x_Time_from_string_mv1(v.data(), - v.size()); - return result.is_ok ? diplomat::result<std::unique_ptr<Time>, CalendarParseError>(diplomat::Ok<std::unique_ptr<Time>>(std::unique_ptr<Time>(Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Time>, CalendarParseError>(diplomat::Err<CalendarParseError>(CalendarParseError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<Time>, CalendarError> Time::midnight() { - auto result = diplomat::capi::icu4x_Time_midnight_mv1(); - return result.is_ok ? diplomat::result<std::unique_ptr<Time>, CalendarError>(diplomat::Ok<std::unique_ptr<Time>>(std::unique_ptr<Time>(Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<Time>, CalendarError>(diplomat::Err<CalendarError>(CalendarError::FromFFI(result.err))); -} - -inline uint8_t Time::hour() const { - auto result = diplomat::capi::icu4x_Time_hour_mv1(this->AsFFI()); - return result; -} - -inline uint8_t Time::minute() const { - auto result = diplomat::capi::icu4x_Time_minute_mv1(this->AsFFI()); - return result; -} - -inline uint8_t Time::second() const { - auto result = diplomat::capi::icu4x_Time_second_mv1(this->AsFFI()); - return result; -} - -inline uint32_t Time::nanosecond() const { - auto result = diplomat::capi::icu4x_Time_nanosecond_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::Time* Time::AsFFI() const { - return reinterpret_cast<const diplomat::capi::Time*>(this); -} - -inline diplomat::capi::Time* Time::AsFFI() { - return reinterpret_cast<diplomat::capi::Time*>(this); -} - -inline const Time* Time::FromFFI(const diplomat::capi::Time* ptr) { - return reinterpret_cast<const Time*>(ptr); -} - -inline Time* Time::FromFFI(diplomat::capi::Time* ptr) { - return reinterpret_cast<Time*>(ptr); -} - -inline void Time::operator delete(void* ptr) { - diplomat::capi::icu4x_Time_destroy_mv1(reinterpret_cast<diplomat::capi::Time*>(ptr)); -} - - -#endif // Time_HPP diff --git a/ffi/capi/bindings/cpp/TimeFormatter.d.hpp b/ffi/capi/bindings/cpp/TimeFormatter.d.hpp deleted file mode 100644 index a47d5aa488f..00000000000 --- a/ffi/capi/bindings/cpp/TimeFormatter.d.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef TimeFormatter_D_HPP -#define TimeFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct DateTime; } -class DateTime; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Locale; } -class Locale; -namespace diplomat::capi { struct Time; } -class Time; -class Error; -class TimeLength; - - -namespace diplomat { -namespace capi { - struct TimeFormatter; -} // namespace capi -} // namespace - -class TimeFormatter { -public: - - inline static diplomat::result<std::unique_ptr<TimeFormatter>, Error> create_with_length(const DataProvider& provider, const Locale& locale, TimeLength length); - - inline std::string format_time(const Time& value) const; - - inline std::string format_datetime(const DateTime& value) const; - - inline std::string format_iso_datetime(const IsoDateTime& value) const; - - inline const diplomat::capi::TimeFormatter* AsFFI() const; - inline diplomat::capi::TimeFormatter* AsFFI(); - inline static const TimeFormatter* FromFFI(const diplomat::capi::TimeFormatter* ptr); - inline static TimeFormatter* FromFFI(diplomat::capi::TimeFormatter* ptr); - inline static void operator delete(void* ptr); -private: - TimeFormatter() = delete; - TimeFormatter(const TimeFormatter&) = delete; - TimeFormatter(TimeFormatter&&) noexcept = delete; - TimeFormatter operator=(const TimeFormatter&) = delete; - TimeFormatter operator=(TimeFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // TimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/TimeFormatter.hpp b/ffi/capi/bindings/cpp/TimeFormatter.hpp deleted file mode 100644 index 05371a5b195..00000000000 --- a/ffi/capi/bindings/cpp/TimeFormatter.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef TimeFormatter_HPP -#define TimeFormatter_HPP - -#include "TimeFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataProvider.hpp" -#include "DateTime.hpp" -#include "Error.hpp" -#include "IsoDateTime.hpp" -#include "Locale.hpp" -#include "Time.hpp" -#include "TimeLength.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_TimeFormatter_create_with_length_mv1_result {union {diplomat::capi::TimeFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeFormatter_create_with_length_mv1_result; - icu4x_TimeFormatter_create_with_length_mv1_result icu4x_TimeFormatter_create_with_length_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::TimeLength length); - - void icu4x_TimeFormatter_format_time_mv1(const diplomat::capi::TimeFormatter* self, const diplomat::capi::Time* value, diplomat::capi::DiplomatWrite* write); - - void icu4x_TimeFormatter_format_datetime_mv1(const diplomat::capi::TimeFormatter* self, const diplomat::capi::DateTime* value, diplomat::capi::DiplomatWrite* write); - - void icu4x_TimeFormatter_format_iso_datetime_mv1(const diplomat::capi::TimeFormatter* self, const diplomat::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); - - - void icu4x_TimeFormatter_destroy_mv1(TimeFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<TimeFormatter>, Error> TimeFormatter::create_with_length(const DataProvider& provider, const Locale& locale, TimeLength length) { - auto result = diplomat::capi::icu4x_TimeFormatter_create_with_length_mv1(provider.AsFFI(), - locale.AsFFI(), - length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<TimeFormatter>, Error>(diplomat::Ok<std::unique_ptr<TimeFormatter>>(std::unique_ptr<TimeFormatter>(TimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<TimeFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline std::string TimeFormatter::format_time(const Time& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_TimeFormatter_format_time_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline std::string TimeFormatter::format_datetime(const DateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_TimeFormatter_format_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline std::string TimeFormatter::format_iso_datetime(const IsoDateTime& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_TimeFormatter_format_iso_datetime_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline const diplomat::capi::TimeFormatter* TimeFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::TimeFormatter*>(this); -} - -inline diplomat::capi::TimeFormatter* TimeFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::TimeFormatter*>(this); -} - -inline const TimeFormatter* TimeFormatter::FromFFI(const diplomat::capi::TimeFormatter* ptr) { - return reinterpret_cast<const TimeFormatter*>(ptr); -} - -inline TimeFormatter* TimeFormatter::FromFFI(diplomat::capi::TimeFormatter* ptr) { - return reinterpret_cast<TimeFormatter*>(ptr); -} - -inline void TimeFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_TimeFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::TimeFormatter*>(ptr)); -} - - -#endif // TimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/TimeLength.hpp b/ffi/capi/bindings/cpp/TimeLength.hpp deleted file mode 100644 index af606a5fe1b..00000000000 --- a/ffi/capi/bindings/cpp/TimeLength.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TimeLength_HPP -#define TimeLength_HPP - -#include "TimeLength.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::TimeLength TimeLength::AsFFI() const { - return static_cast<diplomat::capi::TimeLength>(value); -} - -inline TimeLength TimeLength::FromFFI(diplomat::capi::TimeLength c_enum) { - switch (c_enum) { - case diplomat::capi::TimeLength_Full: - case diplomat::capi::TimeLength_Long: - case diplomat::capi::TimeLength_Medium: - case diplomat::capi::TimeLength_Short: - return static_cast<TimeLength::Value>(c_enum); - default: - abort(); - } -} -#endif // TimeLength_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneFormatter.d.hpp b/ffi/capi/bindings/cpp/TimeZoneFormatter.d.hpp deleted file mode 100644 index 0a3c6d0320f..00000000000 --- a/ffi/capi/bindings/cpp/TimeZoneFormatter.d.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef TimeZoneFormatter_D_HPP -#define TimeZoneFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CustomTimeZone; } -class CustomTimeZone; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -struct IsoTimeZoneOptions; -class Error; - - -namespace diplomat { -namespace capi { - struct TimeZoneFormatter; -} // namespace capi -} // namespace - -class TimeZoneFormatter { -public: - - inline static diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error> create_with_localized_gmt_fallback(const DataProvider& provider, const Locale& locale); - - inline static diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error> create_with_iso_8601_fallback(const DataProvider& provider, const Locale& locale, IsoTimeZoneOptions options); - - inline diplomat::result<std::monostate, Error> load_generic_non_location_long(const DataProvider& provider); - - inline diplomat::result<std::monostate, Error> load_generic_non_location_short(const DataProvider& provider); - - inline diplomat::result<std::monostate, Error> load_specific_non_location_long(const DataProvider& provider); - - inline diplomat::result<std::monostate, Error> load_specific_non_location_short(const DataProvider& provider); - - inline diplomat::result<std::monostate, Error> load_generic_location_format(const DataProvider& provider); - - inline diplomat::result<std::monostate, Error> include_localized_gmt_format(); - - inline diplomat::result<std::monostate, Error> load_iso_8601_format(IsoTimeZoneOptions options); - - inline std::string format_custom_time_zone(const CustomTimeZone& value) const; - - inline diplomat::result<std::string, Error> format_custom_time_zone_no_fallback(const CustomTimeZone& value) const; - - inline const diplomat::capi::TimeZoneFormatter* AsFFI() const; - inline diplomat::capi::TimeZoneFormatter* AsFFI(); - inline static const TimeZoneFormatter* FromFFI(const diplomat::capi::TimeZoneFormatter* ptr); - inline static TimeZoneFormatter* FromFFI(diplomat::capi::TimeZoneFormatter* ptr); - inline static void operator delete(void* ptr); -private: - TimeZoneFormatter() = delete; - TimeZoneFormatter(const TimeZoneFormatter&) = delete; - TimeZoneFormatter(TimeZoneFormatter&&) noexcept = delete; - TimeZoneFormatter operator=(const TimeZoneFormatter&) = delete; - TimeZoneFormatter operator=(TimeZoneFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // TimeZoneFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneFormatter.hpp b/ffi/capi/bindings/cpp/TimeZoneFormatter.hpp deleted file mode 100644 index 9a9caf0e564..00000000000 --- a/ffi/capi/bindings/cpp/TimeZoneFormatter.hpp +++ /dev/null @@ -1,156 +0,0 @@ -#ifndef TimeZoneFormatter_HPP -#define TimeZoneFormatter_HPP - -#include "TimeZoneFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CustomTimeZone.hpp" -#include "DataProvider.hpp" -#include "Error.hpp" -#include "IsoTimeZoneOptions.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1_result {union {diplomat::capi::TimeZoneFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1_result; - icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1_result icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1_result {union {diplomat::capi::TimeZoneFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1_result; - icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1_result icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::IsoTimeZoneOptions options); - - typedef struct icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1_result; - icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1_result icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1(diplomat::capi::TimeZoneFormatter* self, const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1_result; - icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1_result icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1(diplomat::capi::TimeZoneFormatter* self, const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1_result; - icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1_result icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1(diplomat::capi::TimeZoneFormatter* self, const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1_result; - icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1_result icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1(diplomat::capi::TimeZoneFormatter* self, const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_TimeZoneFormatter_load_generic_location_format_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_generic_location_format_mv1_result; - icu4x_TimeZoneFormatter_load_generic_location_format_mv1_result icu4x_TimeZoneFormatter_load_generic_location_format_mv1(diplomat::capi::TimeZoneFormatter* self, const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1_result; - icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1_result icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1(diplomat::capi::TimeZoneFormatter* self); - - typedef struct icu4x_TimeZoneFormatter_load_iso_8601_format_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_iso_8601_format_mv1_result; - icu4x_TimeZoneFormatter_load_iso_8601_format_mv1_result icu4x_TimeZoneFormatter_load_iso_8601_format_mv1(diplomat::capi::TimeZoneFormatter* self, diplomat::capi::IsoTimeZoneOptions options); - - void icu4x_TimeZoneFormatter_format_custom_time_zone_mv1(const diplomat::capi::TimeZoneFormatter* self, const diplomat::capi::CustomTimeZone* value, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1_result; - icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1_result icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1(const diplomat::capi::TimeZoneFormatter* self, const diplomat::capi::CustomTimeZone* value, diplomat::capi::DiplomatWrite* write); - - - void icu4x_TimeZoneFormatter_destroy_mv1(TimeZoneFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error> TimeZoneFormatter::create_with_localized_gmt_fallback(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error>(diplomat::Ok<std::unique_ptr<TimeZoneFormatter>>(std::unique_ptr<TimeZoneFormatter>(TimeZoneFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error> TimeZoneFormatter::create_with_iso_8601_fallback(const DataProvider& provider, const Locale& locale, IsoTimeZoneOptions options) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1(provider.AsFFI(), - locale.AsFFI(), - options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error>(diplomat::Ok<std::unique_ptr<TimeZoneFormatter>>(std::unique_ptr<TimeZoneFormatter>(TimeZoneFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<TimeZoneFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, Error> TimeZoneFormatter::load_generic_non_location_long(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1(this->AsFFI(), - provider.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, Error> TimeZoneFormatter::load_generic_non_location_short(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1(this->AsFFI(), - provider.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, Error> TimeZoneFormatter::load_specific_non_location_long(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1(this->AsFFI(), - provider.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, Error> TimeZoneFormatter::load_specific_non_location_short(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1(this->AsFFI(), - provider.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, Error> TimeZoneFormatter::load_generic_location_format(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_load_generic_location_format_mv1(this->AsFFI(), - provider.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, Error> TimeZoneFormatter::include_localized_gmt_format() { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1(this->AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::monostate, Error> TimeZoneFormatter::load_iso_8601_format(IsoTimeZoneOptions options) { - auto result = diplomat::capi::icu4x_TimeZoneFormatter_load_iso_8601_format_mv1(this->AsFFI(), - options.AsFFI()); - return result.is_ok ? diplomat::result<std::monostate, Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline std::string TimeZoneFormatter::format_custom_time_zone(const CustomTimeZone& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_TimeZoneFormatter_format_custom_time_zone_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return output; -} - -inline diplomat::result<std::string, Error> TimeZoneFormatter::format_custom_time_zone_no_fallback(const CustomTimeZone& value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1(this->AsFFI(), - value.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline const diplomat::capi::TimeZoneFormatter* TimeZoneFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::TimeZoneFormatter*>(this); -} - -inline diplomat::capi::TimeZoneFormatter* TimeZoneFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::TimeZoneFormatter*>(this); -} - -inline const TimeZoneFormatter* TimeZoneFormatter::FromFFI(const diplomat::capi::TimeZoneFormatter* ptr) { - return reinterpret_cast<const TimeZoneFormatter*>(ptr); -} - -inline TimeZoneFormatter* TimeZoneFormatter::FromFFI(diplomat::capi::TimeZoneFormatter* ptr) { - return reinterpret_cast<TimeZoneFormatter*>(ptr); -} - -inline void TimeZoneFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_TimeZoneFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::TimeZoneFormatter*>(ptr)); -} - - -#endif // TimeZoneFormatter_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneIdMapper.d.hpp b/ffi/capi/bindings/cpp/TimeZoneIdMapper.d.hpp deleted file mode 100644 index 0c1d3af83b6..00000000000 --- a/ffi/capi/bindings/cpp/TimeZoneIdMapper.d.hpp +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef TimeZoneIdMapper_D_HPP -#define TimeZoneIdMapper_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -struct TimeZoneInvalidIdError; -class DataError; - - -namespace diplomat { -namespace capi { - struct TimeZoneIdMapper; -} // namespace capi -} // namespace - -class TimeZoneIdMapper { -public: - - inline static diplomat::result<std::unique_ptr<TimeZoneIdMapper>, DataError> create(const DataProvider& provider); - - inline diplomat::result<std::string, TimeZoneInvalidIdError> iana_to_bcp47(std::string_view value) const; - - inline diplomat::result<diplomat::result<std::string, TimeZoneInvalidIdError>, diplomat::Utf8Error> normalize_iana(std::string_view value) const; - - inline diplomat::result<diplomat::result<std::string, TimeZoneInvalidIdError>, diplomat::Utf8Error> canonicalize_iana(std::string_view value) const; - - inline diplomat::result<std::string, TimeZoneInvalidIdError> find_canonical_iana_from_bcp47(std::string_view value) const; - - inline const diplomat::capi::TimeZoneIdMapper* AsFFI() const; - inline diplomat::capi::TimeZoneIdMapper* AsFFI(); - inline static const TimeZoneIdMapper* FromFFI(const diplomat::capi::TimeZoneIdMapper* ptr); - inline static TimeZoneIdMapper* FromFFI(diplomat::capi::TimeZoneIdMapper* ptr); - inline static void operator delete(void* ptr); -private: - TimeZoneIdMapper() = delete; - TimeZoneIdMapper(const TimeZoneIdMapper&) = delete; - TimeZoneIdMapper(TimeZoneIdMapper&&) noexcept = delete; - TimeZoneIdMapper operator=(const TimeZoneIdMapper&) = delete; - TimeZoneIdMapper operator=(TimeZoneIdMapper&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // TimeZoneIdMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneIdMapper.hpp b/ffi/capi/bindings/cpp/TimeZoneIdMapper.hpp deleted file mode 100644 index 94746fe0ee0..00000000000 --- a/ffi/capi/bindings/cpp/TimeZoneIdMapper.hpp +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef TimeZoneIdMapper_HPP -#define TimeZoneIdMapper_HPP - -#include "TimeZoneIdMapper.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "TimeZoneInvalidIdError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_TimeZoneIdMapper_create_mv1_result {union {diplomat::capi::TimeZoneIdMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_TimeZoneIdMapper_create_mv1_result; - icu4x_TimeZoneIdMapper_create_mv1_result icu4x_TimeZoneIdMapper_create_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1_result; - icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1_result icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1(const diplomat::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_TimeZoneIdMapper_normalize_iana_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_normalize_iana_mv1_result; - icu4x_TimeZoneIdMapper_normalize_iana_mv1_result icu4x_TimeZoneIdMapper_normalize_iana_mv1(const diplomat::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_TimeZoneIdMapper_canonicalize_iana_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_canonicalize_iana_mv1_result; - icu4x_TimeZoneIdMapper_canonicalize_iana_mv1_result icu4x_TimeZoneIdMapper_canonicalize_iana_mv1(const diplomat::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1_result; - icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1_result icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1(const diplomat::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); - - - void icu4x_TimeZoneIdMapper_destroy_mv1(TimeZoneIdMapper* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<TimeZoneIdMapper>, DataError> TimeZoneIdMapper::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TimeZoneIdMapper_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<TimeZoneIdMapper>, DataError>(diplomat::Ok<std::unique_ptr<TimeZoneIdMapper>>(std::unique_ptr<TimeZoneIdMapper>(TimeZoneIdMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<TimeZoneIdMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::string, TimeZoneInvalidIdError> TimeZoneIdMapper::iana_to_bcp47(std::string_view value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1(this->AsFFI(), - value.data(), - value.size(), - &write); - return result.is_ok ? diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {})); -} - -inline diplomat::result<diplomat::result<std::string, TimeZoneInvalidIdError>, diplomat::Utf8Error> TimeZoneIdMapper::normalize_iana(std::string_view value) const { - if (!diplomat::capi::diplomat_is_str(value.data(), value.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_TimeZoneIdMapper_normalize_iana_mv1(this->AsFFI(), - value.data(), - value.size(), - &write); - return diplomat::Ok<diplomat::result<std::string, TimeZoneInvalidIdError>>(result.is_ok ? diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {}))); -} - -inline diplomat::result<diplomat::result<std::string, TimeZoneInvalidIdError>, diplomat::Utf8Error> TimeZoneIdMapper::canonicalize_iana(std::string_view value) const { - if (!diplomat::capi::diplomat_is_str(value.data(), value.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_TimeZoneIdMapper_canonicalize_iana_mv1(this->AsFFI(), - value.data(), - value.size(), - &write); - return diplomat::Ok<diplomat::result<std::string, TimeZoneInvalidIdError>>(result.is_ok ? diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {}))); -} - -inline diplomat::result<std::string, TimeZoneInvalidIdError> TimeZoneIdMapper::find_canonical_iana_from_bcp47(std::string_view value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1(this->AsFFI(), - value.data(), - value.size(), - &write); - return result.is_ok ? diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {})); -} - -inline const diplomat::capi::TimeZoneIdMapper* TimeZoneIdMapper::AsFFI() const { - return reinterpret_cast<const diplomat::capi::TimeZoneIdMapper*>(this); -} - -inline diplomat::capi::TimeZoneIdMapper* TimeZoneIdMapper::AsFFI() { - return reinterpret_cast<diplomat::capi::TimeZoneIdMapper*>(this); -} - -inline const TimeZoneIdMapper* TimeZoneIdMapper::FromFFI(const diplomat::capi::TimeZoneIdMapper* ptr) { - return reinterpret_cast<const TimeZoneIdMapper*>(ptr); -} - -inline TimeZoneIdMapper* TimeZoneIdMapper::FromFFI(diplomat::capi::TimeZoneIdMapper* ptr) { - return reinterpret_cast<TimeZoneIdMapper*>(ptr); -} - -inline void TimeZoneIdMapper::operator delete(void* ptr) { - diplomat::capi::icu4x_TimeZoneIdMapper_destroy_mv1(reinterpret_cast<diplomat::capi::TimeZoneIdMapper*>(ptr)); -} - - -#endif // TimeZoneIdMapper_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.d.hpp b/ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.d.hpp deleted file mode 100644 index c946b1cad95..00000000000 --- a/ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.d.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef TimeZoneIdMapperWithFastCanonicalization_D_HPP -#define TimeZoneIdMapperWithFastCanonicalization_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -struct TimeZoneInvalidIdError; -class DataError; - - -namespace diplomat { -namespace capi { - struct TimeZoneIdMapperWithFastCanonicalization; -} // namespace capi -} // namespace - -class TimeZoneIdMapperWithFastCanonicalization { -public: - - inline static diplomat::result<std::unique_ptr<TimeZoneIdMapperWithFastCanonicalization>, DataError> create(const DataProvider& provider); - - inline diplomat::result<diplomat::result<std::string, TimeZoneInvalidIdError>, diplomat::Utf8Error> canonicalize_iana(std::string_view value) const; - - inline diplomat::result<std::string, TimeZoneInvalidIdError> canonical_iana_from_bcp47(std::string_view value) const; - - inline const diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* AsFFI() const; - inline diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* AsFFI(); - inline static const TimeZoneIdMapperWithFastCanonicalization* FromFFI(const diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* ptr); - inline static TimeZoneIdMapperWithFastCanonicalization* FromFFI(diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* ptr); - inline static void operator delete(void* ptr); -private: - TimeZoneIdMapperWithFastCanonicalization() = delete; - TimeZoneIdMapperWithFastCanonicalization(const TimeZoneIdMapperWithFastCanonicalization&) = delete; - TimeZoneIdMapperWithFastCanonicalization(TimeZoneIdMapperWithFastCanonicalization&&) noexcept = delete; - TimeZoneIdMapperWithFastCanonicalization operator=(const TimeZoneIdMapperWithFastCanonicalization&) = delete; - TimeZoneIdMapperWithFastCanonicalization operator=(TimeZoneIdMapperWithFastCanonicalization&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // TimeZoneIdMapperWithFastCanonicalization_D_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.hpp b/ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.hpp deleted file mode 100644 index a70c31fdbf7..00000000000 --- a/ffi/capi/bindings/cpp/TimeZoneIdMapperWithFastCanonicalization.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef TimeZoneIdMapperWithFastCanonicalization_HPP -#define TimeZoneIdMapperWithFastCanonicalization_HPP - -#include "TimeZoneIdMapperWithFastCanonicalization.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "TimeZoneInvalidIdError.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1_result {union {diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1_result; - icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1_result icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1_result; - icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1_result icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1(const diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1_result; - icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1_result icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1(const diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); - - - void icu4x_TimeZoneIdMapperWithFastCanonicalization_destroy_mv1(TimeZoneIdMapperWithFastCanonicalization* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<TimeZoneIdMapperWithFastCanonicalization>, DataError> TimeZoneIdMapperWithFastCanonicalization::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<TimeZoneIdMapperWithFastCanonicalization>, DataError>(diplomat::Ok<std::unique_ptr<TimeZoneIdMapperWithFastCanonicalization>>(std::unique_ptr<TimeZoneIdMapperWithFastCanonicalization>(TimeZoneIdMapperWithFastCanonicalization::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<TimeZoneIdMapperWithFastCanonicalization>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<diplomat::result<std::string, TimeZoneInvalidIdError>, diplomat::Utf8Error> TimeZoneIdMapperWithFastCanonicalization::canonicalize_iana(std::string_view value) const { - if (!diplomat::capi::diplomat_is_str(value.data(), value.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1(this->AsFFI(), - value.data(), - value.size(), - &write); - return diplomat::Ok<diplomat::result<std::string, TimeZoneInvalidIdError>>(result.is_ok ? diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {}))); -} - -inline diplomat::result<std::string, TimeZoneInvalidIdError> TimeZoneIdMapperWithFastCanonicalization::canonical_iana_from_bcp47(std::string_view value) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1(this->AsFFI(), - value.data(), - value.size(), - &write); - return result.is_ok ? diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, TimeZoneInvalidIdError>(diplomat::Err<TimeZoneInvalidIdError>(TimeZoneInvalidIdError {})); -} - -inline const diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* TimeZoneIdMapperWithFastCanonicalization::AsFFI() const { - return reinterpret_cast<const diplomat::capi::TimeZoneIdMapperWithFastCanonicalization*>(this); -} - -inline diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* TimeZoneIdMapperWithFastCanonicalization::AsFFI() { - return reinterpret_cast<diplomat::capi::TimeZoneIdMapperWithFastCanonicalization*>(this); -} - -inline const TimeZoneIdMapperWithFastCanonicalization* TimeZoneIdMapperWithFastCanonicalization::FromFFI(const diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* ptr) { - return reinterpret_cast<const TimeZoneIdMapperWithFastCanonicalization*>(ptr); -} - -inline TimeZoneIdMapperWithFastCanonicalization* TimeZoneIdMapperWithFastCanonicalization::FromFFI(diplomat::capi::TimeZoneIdMapperWithFastCanonicalization* ptr) { - return reinterpret_cast<TimeZoneIdMapperWithFastCanonicalization*>(ptr); -} - -inline void TimeZoneIdMapperWithFastCanonicalization::operator delete(void* ptr) { - diplomat::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_destroy_mv1(reinterpret_cast<diplomat::capi::TimeZoneIdMapperWithFastCanonicalization*>(ptr)); -} - - -#endif // TimeZoneIdMapperWithFastCanonicalization_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneInvalidOffsetError.d.hpp b/ffi/capi/bindings/cpp/TimeZoneInvalidOffsetError.d.hpp deleted file mode 100644 index c60d2753e01..00000000000 --- a/ffi/capi/bindings/cpp/TimeZoneInvalidOffsetError.d.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef TimeZoneInvalidOffsetError_D_HPP -#define TimeZoneInvalidOffsetError_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - -} // namespace capi -} // namespace - - -struct TimeZoneInvalidOffsetError { - -}; - - -#endif // TimeZoneInvalidOffsetError_D_HPP diff --git a/ffi/capi/bindings/cpp/TitlecaseMapper.d.hpp b/ffi/capi/bindings/cpp/TitlecaseMapper.d.hpp deleted file mode 100644 index 5be8beba9bf..00000000000 --- a/ffi/capi/bindings/cpp/TitlecaseMapper.d.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef TitlecaseMapper_D_HPP -#define TitlecaseMapper_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -struct TitlecaseOptionsV1; -class DataError; - - -namespace diplomat { -namespace capi { - struct TitlecaseMapper; -} // namespace capi -} // namespace - -class TitlecaseMapper { -public: - - inline static diplomat::result<std::unique_ptr<TitlecaseMapper>, DataError> create(const DataProvider& provider); - - inline diplomat::result<std::string, diplomat::Utf8Error> titlecase_segment_v1(std::string_view s, const Locale& locale, TitlecaseOptionsV1 options) const; - - inline const diplomat::capi::TitlecaseMapper* AsFFI() const; - inline diplomat::capi::TitlecaseMapper* AsFFI(); - inline static const TitlecaseMapper* FromFFI(const diplomat::capi::TitlecaseMapper* ptr); - inline static TitlecaseMapper* FromFFI(diplomat::capi::TitlecaseMapper* ptr); - inline static void operator delete(void* ptr); -private: - TitlecaseMapper() = delete; - TitlecaseMapper(const TitlecaseMapper&) = delete; - TitlecaseMapper(TitlecaseMapper&&) noexcept = delete; - TitlecaseMapper operator=(const TitlecaseMapper&) = delete; - TitlecaseMapper operator=(TitlecaseMapper&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // TitlecaseMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/TitlecaseMapper.hpp b/ffi/capi/bindings/cpp/TitlecaseMapper.hpp deleted file mode 100644 index 5b2a5082fdf..00000000000 --- a/ffi/capi/bindings/cpp/TitlecaseMapper.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef TitlecaseMapper_HPP -#define TitlecaseMapper_HPP - -#include "TitlecaseMapper.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "TitlecaseOptionsV1.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_TitlecaseMapper_create_mv1_result {union {diplomat::capi::TitlecaseMapper* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_TitlecaseMapper_create_mv1_result; - icu4x_TitlecaseMapper_create_mv1_result icu4x_TitlecaseMapper_create_mv1(const diplomat::capi::DataProvider* provider); - - void icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(const diplomat::capi::TitlecaseMapper* self, const char* s_data, size_t s_len, const diplomat::capi::Locale* locale, diplomat::capi::TitlecaseOptionsV1 options, diplomat::capi::DiplomatWrite* write); - - - void icu4x_TitlecaseMapper_destroy_mv1(TitlecaseMapper* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<TitlecaseMapper>, DataError> TitlecaseMapper::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_TitlecaseMapper_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<TitlecaseMapper>, DataError>(diplomat::Ok<std::unique_ptr<TitlecaseMapper>>(std::unique_ptr<TitlecaseMapper>(TitlecaseMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<TitlecaseMapper>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::string, diplomat::Utf8Error> TitlecaseMapper::titlecase_segment_v1(std::string_view s, const Locale& locale, TitlecaseOptionsV1 options) const { - if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { - return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); - } - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - diplomat::capi::icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(this->AsFFI(), - s.data(), - s.size(), - locale.AsFFI(), - options.AsFFI(), - &write); - return diplomat::Ok<std::string>(std::move(output)); -} - -inline const diplomat::capi::TitlecaseMapper* TitlecaseMapper::AsFFI() const { - return reinterpret_cast<const diplomat::capi::TitlecaseMapper*>(this); -} - -inline diplomat::capi::TitlecaseMapper* TitlecaseMapper::AsFFI() { - return reinterpret_cast<diplomat::capi::TitlecaseMapper*>(this); -} - -inline const TitlecaseMapper* TitlecaseMapper::FromFFI(const diplomat::capi::TitlecaseMapper* ptr) { - return reinterpret_cast<const TitlecaseMapper*>(ptr); -} - -inline TitlecaseMapper* TitlecaseMapper::FromFFI(diplomat::capi::TitlecaseMapper* ptr) { - return reinterpret_cast<TitlecaseMapper*>(ptr); -} - -inline void TitlecaseMapper::operator delete(void* ptr) { - diplomat::capi::icu4x_TitlecaseMapper_destroy_mv1(reinterpret_cast<diplomat::capi::TitlecaseMapper*>(ptr)); -} - - -#endif // TitlecaseMapper_HPP diff --git a/ffi/capi/bindings/cpp/TitlecaseOptionsV1.d.hpp b/ffi/capi/bindings/cpp/TitlecaseOptionsV1.d.hpp deleted file mode 100644 index 30d41d5b92a..00000000000 --- a/ffi/capi/bindings/cpp/TitlecaseOptionsV1.d.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TitlecaseOptionsV1_D_HPP -#define TitlecaseOptionsV1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "LeadingAdjustment.d.hpp" -#include "TrailingCase.d.hpp" -#include "diplomat_runtime.hpp" - -class LeadingAdjustment; -class TrailingCase; - - -namespace diplomat { -namespace capi { - struct TitlecaseOptionsV1 { - diplomat::capi::LeadingAdjustment leading_adjustment; - diplomat::capi::TrailingCase trailing_case; - }; -} // namespace capi -} // namespace - - -struct TitlecaseOptionsV1 { - LeadingAdjustment leading_adjustment; - TrailingCase trailing_case; - - inline static TitlecaseOptionsV1 default_options(); - - inline diplomat::capi::TitlecaseOptionsV1 AsFFI() const; - inline static TitlecaseOptionsV1 FromFFI(diplomat::capi::TitlecaseOptionsV1 c_struct); -}; - - -#endif // TitlecaseOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/TitlecaseOptionsV1.hpp b/ffi/capi/bindings/cpp/TitlecaseOptionsV1.hpp deleted file mode 100644 index abff0fa8fc6..00000000000 --- a/ffi/capi/bindings/cpp/TitlecaseOptionsV1.hpp +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef TitlecaseOptionsV1_HPP -#define TitlecaseOptionsV1_HPP - -#include "TitlecaseOptionsV1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "LeadingAdjustment.hpp" -#include "TrailingCase.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - diplomat::capi::TitlecaseOptionsV1 icu4x_TitlecaseOptionsV1_default_mv1(void); - - - } // extern "C" -} // namespace capi -} // namespace - -inline TitlecaseOptionsV1 TitlecaseOptionsV1::default_options() { - auto result = diplomat::capi::icu4x_TitlecaseOptionsV1_default_mv1(); - return TitlecaseOptionsV1::FromFFI(result); -} - - -inline diplomat::capi::TitlecaseOptionsV1 TitlecaseOptionsV1::AsFFI() const { - return diplomat::capi::TitlecaseOptionsV1 { - /* .leading_adjustment = */ leading_adjustment.AsFFI(), - /* .trailing_case = */ trailing_case.AsFFI(), - }; -} - -inline TitlecaseOptionsV1 TitlecaseOptionsV1::FromFFI(diplomat::capi::TitlecaseOptionsV1 c_struct) { - return TitlecaseOptionsV1 { - /* .leading_adjustment = */ LeadingAdjustment::FromFFI(c_struct.leading_adjustment), - /* .trailing_case = */ TrailingCase::FromFFI(c_struct.trailing_case), - }; -} - - -#endif // TitlecaseOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/TrailingCase.hpp b/ffi/capi/bindings/cpp/TrailingCase.hpp deleted file mode 100644 index e95f11d947e..00000000000 --- a/ffi/capi/bindings/cpp/TrailingCase.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef TrailingCase_HPP -#define TrailingCase_HPP - -#include "TrailingCase.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::TrailingCase TrailingCase::AsFFI() const { - return static_cast<diplomat::capi::TrailingCase>(value); -} - -inline TrailingCase TrailingCase::FromFFI(diplomat::capi::TrailingCase c_enum) { - switch (c_enum) { - case diplomat::capi::TrailingCase_Lower: - case diplomat::capi::TrailingCase_Unchanged: - return static_cast<TrailingCase::Value>(c_enum); - default: - abort(); - } -} -#endif // TrailingCase_HPP diff --git a/ffi/capi/bindings/cpp/TransformResult.hpp b/ffi/capi/bindings/cpp/TransformResult.hpp deleted file mode 100644 index ea8f53b8656..00000000000 --- a/ffi/capi/bindings/cpp/TransformResult.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef TransformResult_HPP -#define TransformResult_HPP - -#include "TransformResult.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::TransformResult TransformResult::AsFFI() const { - return static_cast<diplomat::capi::TransformResult>(value); -} - -inline TransformResult TransformResult::FromFFI(diplomat::capi::TransformResult c_enum) { - switch (c_enum) { - case diplomat::capi::TransformResult_Modified: - case diplomat::capi::TransformResult_Unmodified: - return static_cast<TransformResult::Value>(c_enum); - default: - abort(); - } -} -#endif // TransformResult_HPP diff --git a/ffi/capi/bindings/cpp/UnicodeSetData.d.hpp b/ffi/capi/bindings/cpp/UnicodeSetData.d.hpp deleted file mode 100644 index 6c5eb06a91d..00000000000 --- a/ffi/capi/bindings/cpp/UnicodeSetData.d.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef UnicodeSetData_D_HPP -#define UnicodeSetData_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -class DataError; - - -namespace diplomat { -namespace capi { - struct UnicodeSetData; -} // namespace capi -} // namespace - -class UnicodeSetData { -public: - - inline bool contains(std::string_view s) const; - - inline bool contains_char(char32_t cp) const; - - inline static diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> load_basic_emoji(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> load_exemplars_main(const DataProvider& provider, const Locale& locale); - - inline static diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> load_exemplars_auxiliary(const DataProvider& provider, const Locale& locale); - - inline static diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> load_exemplars_punctuation(const DataProvider& provider, const Locale& locale); - - inline static diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> load_exemplars_numbers(const DataProvider& provider, const Locale& locale); - - inline static diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> load_exemplars_index(const DataProvider& provider, const Locale& locale); - - inline const diplomat::capi::UnicodeSetData* AsFFI() const; - inline diplomat::capi::UnicodeSetData* AsFFI(); - inline static const UnicodeSetData* FromFFI(const diplomat::capi::UnicodeSetData* ptr); - inline static UnicodeSetData* FromFFI(diplomat::capi::UnicodeSetData* ptr); - inline static void operator delete(void* ptr); -private: - UnicodeSetData() = delete; - UnicodeSetData(const UnicodeSetData&) = delete; - UnicodeSetData(UnicodeSetData&&) noexcept = delete; - UnicodeSetData operator=(const UnicodeSetData&) = delete; - UnicodeSetData operator=(UnicodeSetData&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // UnicodeSetData_D_HPP diff --git a/ffi/capi/bindings/cpp/UnicodeSetData.hpp b/ffi/capi/bindings/cpp/UnicodeSetData.hpp deleted file mode 100644 index 1fa4c247928..00000000000 --- a/ffi/capi/bindings/cpp/UnicodeSetData.hpp +++ /dev/null @@ -1,120 +0,0 @@ -#ifndef UnicodeSetData_HPP -#define UnicodeSetData_HPP - -#include "UnicodeSetData.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - bool icu4x_UnicodeSetData_contains_mv1(const diplomat::capi::UnicodeSetData* self, const char* s_data, size_t s_len); - - bool icu4x_UnicodeSetData_contains_char_mv1(const diplomat::capi::UnicodeSetData* self, char32_t cp); - - typedef struct icu4x_UnicodeSetData_load_basic_emoji_mv1_result {union {diplomat::capi::UnicodeSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_basic_emoji_mv1_result; - icu4x_UnicodeSetData_load_basic_emoji_mv1_result icu4x_UnicodeSetData_load_basic_emoji_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_UnicodeSetData_load_exemplars_main_mv1_result {union {diplomat::capi::UnicodeSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_main_mv1_result; - icu4x_UnicodeSetData_load_exemplars_main_mv1_result icu4x_UnicodeSetData_load_exemplars_main_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1_result {union {diplomat::capi::UnicodeSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1_result; - icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1_result icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_UnicodeSetData_load_exemplars_punctuation_mv1_result {union {diplomat::capi::UnicodeSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_punctuation_mv1_result; - icu4x_UnicodeSetData_load_exemplars_punctuation_mv1_result icu4x_UnicodeSetData_load_exemplars_punctuation_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_UnicodeSetData_load_exemplars_numbers_mv1_result {union {diplomat::capi::UnicodeSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_numbers_mv1_result; - icu4x_UnicodeSetData_load_exemplars_numbers_mv1_result icu4x_UnicodeSetData_load_exemplars_numbers_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - typedef struct icu4x_UnicodeSetData_load_exemplars_index_mv1_result {union {diplomat::capi::UnicodeSetData* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_index_mv1_result; - icu4x_UnicodeSetData_load_exemplars_index_mv1_result icu4x_UnicodeSetData_load_exemplars_index_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - - void icu4x_UnicodeSetData_destroy_mv1(UnicodeSetData* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline bool UnicodeSetData::contains(std::string_view s) const { - auto result = diplomat::capi::icu4x_UnicodeSetData_contains_mv1(this->AsFFI(), - s.data(), - s.size()); - return result; -} - -inline bool UnicodeSetData::contains_char(char32_t cp) const { - auto result = diplomat::capi::icu4x_UnicodeSetData_contains_char_mv1(this->AsFFI(), - cp); - return result; -} - -inline diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> UnicodeSetData::load_basic_emoji(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_UnicodeSetData_load_basic_emoji_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Ok<std::unique_ptr<UnicodeSetData>>(std::unique_ptr<UnicodeSetData>(UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> UnicodeSetData::load_exemplars_main(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_UnicodeSetData_load_exemplars_main_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Ok<std::unique_ptr<UnicodeSetData>>(std::unique_ptr<UnicodeSetData>(UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> UnicodeSetData::load_exemplars_auxiliary(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Ok<std::unique_ptr<UnicodeSetData>>(std::unique_ptr<UnicodeSetData>(UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> UnicodeSetData::load_exemplars_punctuation(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_UnicodeSetData_load_exemplars_punctuation_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Ok<std::unique_ptr<UnicodeSetData>>(std::unique_ptr<UnicodeSetData>(UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> UnicodeSetData::load_exemplars_numbers(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_UnicodeSetData_load_exemplars_numbers_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Ok<std::unique_ptr<UnicodeSetData>>(std::unique_ptr<UnicodeSetData>(UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<UnicodeSetData>, DataError> UnicodeSetData::load_exemplars_index(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_UnicodeSetData_load_exemplars_index_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Ok<std::unique_ptr<UnicodeSetData>>(std::unique_ptr<UnicodeSetData>(UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<UnicodeSetData>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline const diplomat::capi::UnicodeSetData* UnicodeSetData::AsFFI() const { - return reinterpret_cast<const diplomat::capi::UnicodeSetData*>(this); -} - -inline diplomat::capi::UnicodeSetData* UnicodeSetData::AsFFI() { - return reinterpret_cast<diplomat::capi::UnicodeSetData*>(this); -} - -inline const UnicodeSetData* UnicodeSetData::FromFFI(const diplomat::capi::UnicodeSetData* ptr) { - return reinterpret_cast<const UnicodeSetData*>(ptr); -} - -inline UnicodeSetData* UnicodeSetData::FromFFI(diplomat::capi::UnicodeSetData* ptr) { - return reinterpret_cast<UnicodeSetData*>(ptr); -} - -inline void UnicodeSetData::operator delete(void* ptr) { - diplomat::capi::icu4x_UnicodeSetData_destroy_mv1(reinterpret_cast<diplomat::capi::UnicodeSetData*>(ptr)); -} - - -#endif // UnicodeSetData_HPP diff --git a/ffi/capi/bindings/cpp/UnitsConverter.d.hpp b/ffi/capi/bindings/cpp/UnitsConverter.d.hpp deleted file mode 100644 index f0e823d34b0..00000000000 --- a/ffi/capi/bindings/cpp/UnitsConverter.d.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef UnitsConverter_D_HPP -#define UnitsConverter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - struct UnitsConverter; -} // namespace capi -} // namespace - -class UnitsConverter { -public: - - inline double convert(double value) const; - - inline std::unique_ptr<UnitsConverter> clone() const; - - inline const diplomat::capi::UnitsConverter* AsFFI() const; - inline diplomat::capi::UnitsConverter* AsFFI(); - inline static const UnitsConverter* FromFFI(const diplomat::capi::UnitsConverter* ptr); - inline static UnitsConverter* FromFFI(diplomat::capi::UnitsConverter* ptr); - inline static void operator delete(void* ptr); -private: - UnitsConverter() = delete; - UnitsConverter(const UnitsConverter&) = delete; - UnitsConverter(UnitsConverter&&) noexcept = delete; - UnitsConverter operator=(const UnitsConverter&) = delete; - UnitsConverter operator=(UnitsConverter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // UnitsConverter_D_HPP diff --git a/ffi/capi/bindings/cpp/UnitsConverter.hpp b/ffi/capi/bindings/cpp/UnitsConverter.hpp deleted file mode 100644 index 369b044d77d..00000000000 --- a/ffi/capi/bindings/cpp/UnitsConverter.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef UnitsConverter_HPP -#define UnitsConverter_HPP - -#include "UnitsConverter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - double icu4x_UnitsConverter_convert_double_mv1(const diplomat::capi::UnitsConverter* self, double value); - - diplomat::capi::UnitsConverter* icu4x_UnitsConverter_clone_mv1(const diplomat::capi::UnitsConverter* self); - - - void icu4x_UnitsConverter_destroy_mv1(UnitsConverter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline double UnitsConverter::convert(double value) const { - auto result = diplomat::capi::icu4x_UnitsConverter_convert_double_mv1(this->AsFFI(), - value); - return result; -} - -inline std::unique_ptr<UnitsConverter> UnitsConverter::clone() const { - auto result = diplomat::capi::icu4x_UnitsConverter_clone_mv1(this->AsFFI()); - return std::unique_ptr<UnitsConverter>(UnitsConverter::FromFFI(result)); -} - -inline const diplomat::capi::UnitsConverter* UnitsConverter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::UnitsConverter*>(this); -} - -inline diplomat::capi::UnitsConverter* UnitsConverter::AsFFI() { - return reinterpret_cast<diplomat::capi::UnitsConverter*>(this); -} - -inline const UnitsConverter* UnitsConverter::FromFFI(const diplomat::capi::UnitsConverter* ptr) { - return reinterpret_cast<const UnitsConverter*>(ptr); -} - -inline UnitsConverter* UnitsConverter::FromFFI(diplomat::capi::UnitsConverter* ptr) { - return reinterpret_cast<UnitsConverter*>(ptr); -} - -inline void UnitsConverter::operator delete(void* ptr) { - diplomat::capi::icu4x_UnitsConverter_destroy_mv1(reinterpret_cast<diplomat::capi::UnitsConverter*>(ptr)); -} - - -#endif // UnitsConverter_HPP diff --git a/ffi/capi/bindings/cpp/UnitsConverterFactory.d.hpp b/ffi/capi/bindings/cpp/UnitsConverterFactory.d.hpp deleted file mode 100644 index 901a594ee36..00000000000 --- a/ffi/capi/bindings/cpp/UnitsConverterFactory.d.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef UnitsConverterFactory_D_HPP -#define UnitsConverterFactory_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct MeasureUnit; } -class MeasureUnit; -namespace diplomat::capi { struct MeasureUnitParser; } -class MeasureUnitParser; -namespace diplomat::capi { struct UnitsConverter; } -class UnitsConverter; -class DataError; - - -namespace diplomat { -namespace capi { - struct UnitsConverterFactory; -} // namespace capi -} // namespace - -class UnitsConverterFactory { -public: - - inline static diplomat::result<std::unique_ptr<UnitsConverterFactory>, DataError> create(const DataProvider& provider); - - inline std::unique_ptr<UnitsConverter> converter(const MeasureUnit& from, const MeasureUnit& to) const; - - inline std::unique_ptr<MeasureUnitParser> parser() const; - - inline const diplomat::capi::UnitsConverterFactory* AsFFI() const; - inline diplomat::capi::UnitsConverterFactory* AsFFI(); - inline static const UnitsConverterFactory* FromFFI(const diplomat::capi::UnitsConverterFactory* ptr); - inline static UnitsConverterFactory* FromFFI(diplomat::capi::UnitsConverterFactory* ptr); - inline static void operator delete(void* ptr); -private: - UnitsConverterFactory() = delete; - UnitsConverterFactory(const UnitsConverterFactory&) = delete; - UnitsConverterFactory(UnitsConverterFactory&&) noexcept = delete; - UnitsConverterFactory operator=(const UnitsConverterFactory&) = delete; - UnitsConverterFactory operator=(UnitsConverterFactory&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // UnitsConverterFactory_D_HPP diff --git a/ffi/capi/bindings/cpp/UnitsConverterFactory.hpp b/ffi/capi/bindings/cpp/UnitsConverterFactory.hpp deleted file mode 100644 index 315c6c8c511..00000000000 --- a/ffi/capi/bindings/cpp/UnitsConverterFactory.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef UnitsConverterFactory_HPP -#define UnitsConverterFactory_HPP - -#include "UnitsConverterFactory.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "MeasureUnit.hpp" -#include "MeasureUnitParser.hpp" -#include "UnitsConverter.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_UnitsConverterFactory_create_mv1_result {union {diplomat::capi::UnitsConverterFactory* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_UnitsConverterFactory_create_mv1_result; - icu4x_UnitsConverterFactory_create_mv1_result icu4x_UnitsConverterFactory_create_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::UnitsConverter* icu4x_UnitsConverterFactory_converter_mv1(const diplomat::capi::UnitsConverterFactory* self, const diplomat::capi::MeasureUnit* from, const diplomat::capi::MeasureUnit* to); - - diplomat::capi::MeasureUnitParser* icu4x_UnitsConverterFactory_parser_mv1(const diplomat::capi::UnitsConverterFactory* self); - - - void icu4x_UnitsConverterFactory_destroy_mv1(UnitsConverterFactory* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<UnitsConverterFactory>, DataError> UnitsConverterFactory::create(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_UnitsConverterFactory_create_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<UnitsConverterFactory>, DataError>(diplomat::Ok<std::unique_ptr<UnitsConverterFactory>>(std::unique_ptr<UnitsConverterFactory>(UnitsConverterFactory::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<UnitsConverterFactory>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<UnitsConverter> UnitsConverterFactory::converter(const MeasureUnit& from, const MeasureUnit& to) const { - auto result = diplomat::capi::icu4x_UnitsConverterFactory_converter_mv1(this->AsFFI(), - from.AsFFI(), - to.AsFFI()); - return std::unique_ptr<UnitsConverter>(UnitsConverter::FromFFI(result)); -} - -inline std::unique_ptr<MeasureUnitParser> UnitsConverterFactory::parser() const { - auto result = diplomat::capi::icu4x_UnitsConverterFactory_parser_mv1(this->AsFFI()); - return std::unique_ptr<MeasureUnitParser>(MeasureUnitParser::FromFFI(result)); -} - -inline const diplomat::capi::UnitsConverterFactory* UnitsConverterFactory::AsFFI() const { - return reinterpret_cast<const diplomat::capi::UnitsConverterFactory*>(this); -} - -inline diplomat::capi::UnitsConverterFactory* UnitsConverterFactory::AsFFI() { - return reinterpret_cast<diplomat::capi::UnitsConverterFactory*>(this); -} - -inline const UnitsConverterFactory* UnitsConverterFactory::FromFFI(const diplomat::capi::UnitsConverterFactory* ptr) { - return reinterpret_cast<const UnitsConverterFactory*>(ptr); -} - -inline UnitsConverterFactory* UnitsConverterFactory::FromFFI(diplomat::capi::UnitsConverterFactory* ptr) { - return reinterpret_cast<UnitsConverterFactory*>(ptr); -} - -inline void UnitsConverterFactory::operator delete(void* ptr) { - diplomat::capi::icu4x_UnitsConverterFactory_destroy_mv1(reinterpret_cast<diplomat::capi::UnitsConverterFactory*>(ptr)); -} - - -#endif // UnitsConverterFactory_HPP diff --git a/ffi/capi/bindings/cpp/WeekCalculator.d.hpp b/ffi/capi/bindings/cpp/WeekCalculator.d.hpp deleted file mode 100644 index e32452d30fb..00000000000 --- a/ffi/capi/bindings/cpp/WeekCalculator.d.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef WeekCalculator_D_HPP -#define WeekCalculator_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct Locale; } -class Locale; -struct WeekendContainsDay; -class DataError; -class IsoWeekday; - - -namespace diplomat { -namespace capi { - struct WeekCalculator; -} // namespace capi -} // namespace - -class WeekCalculator { -public: - - inline static diplomat::result<std::unique_ptr<WeekCalculator>, DataError> create(const DataProvider& provider, const Locale& locale); - - inline static std::unique_ptr<WeekCalculator> from_first_day_of_week_and_min_week_days(IsoWeekday first_weekday, uint8_t min_week_days); - - inline IsoWeekday first_weekday() const; - - inline uint8_t min_week_days() const; - - inline WeekendContainsDay weekend() const; - - inline const diplomat::capi::WeekCalculator* AsFFI() const; - inline diplomat::capi::WeekCalculator* AsFFI(); - inline static const WeekCalculator* FromFFI(const diplomat::capi::WeekCalculator* ptr); - inline static WeekCalculator* FromFFI(diplomat::capi::WeekCalculator* ptr); - inline static void operator delete(void* ptr); -private: - WeekCalculator() = delete; - WeekCalculator(const WeekCalculator&) = delete; - WeekCalculator(WeekCalculator&&) noexcept = delete; - WeekCalculator operator=(const WeekCalculator&) = delete; - WeekCalculator operator=(WeekCalculator&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // WeekCalculator_D_HPP diff --git a/ffi/capi/bindings/cpp/WeekCalculator.hpp b/ffi/capi/bindings/cpp/WeekCalculator.hpp deleted file mode 100644 index 3473f030412..00000000000 --- a/ffi/capi/bindings/cpp/WeekCalculator.hpp +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef WeekCalculator_HPP -#define WeekCalculator_HPP - -#include "WeekCalculator.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "IsoWeekday.hpp" -#include "Locale.hpp" -#include "WeekendContainsDay.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_WeekCalculator_create_mv1_result {union {diplomat::capi::WeekCalculator* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_WeekCalculator_create_mv1_result; - icu4x_WeekCalculator_create_mv1_result icu4x_WeekCalculator_create_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale); - - diplomat::capi::WeekCalculator* icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(diplomat::capi::IsoWeekday first_weekday, uint8_t min_week_days); - - diplomat::capi::IsoWeekday icu4x_WeekCalculator_first_weekday_mv1(const diplomat::capi::WeekCalculator* self); - - uint8_t icu4x_WeekCalculator_min_week_days_mv1(const diplomat::capi::WeekCalculator* self); - - diplomat::capi::WeekendContainsDay icu4x_WeekCalculator_weekend_mv1(const diplomat::capi::WeekCalculator* self); - - - void icu4x_WeekCalculator_destroy_mv1(WeekCalculator* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<WeekCalculator>, DataError> WeekCalculator::create(const DataProvider& provider, const Locale& locale) { - auto result = diplomat::capi::icu4x_WeekCalculator_create_mv1(provider.AsFFI(), - locale.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<WeekCalculator>, DataError>(diplomat::Ok<std::unique_ptr<WeekCalculator>>(std::unique_ptr<WeekCalculator>(WeekCalculator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<WeekCalculator>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<WeekCalculator> WeekCalculator::from_first_day_of_week_and_min_week_days(IsoWeekday first_weekday, uint8_t min_week_days) { - auto result = diplomat::capi::icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(first_weekday.AsFFI(), - min_week_days); - return std::unique_ptr<WeekCalculator>(WeekCalculator::FromFFI(result)); -} - -inline IsoWeekday WeekCalculator::first_weekday() const { - auto result = diplomat::capi::icu4x_WeekCalculator_first_weekday_mv1(this->AsFFI()); - return IsoWeekday::FromFFI(result); -} - -inline uint8_t WeekCalculator::min_week_days() const { - auto result = diplomat::capi::icu4x_WeekCalculator_min_week_days_mv1(this->AsFFI()); - return result; -} - -inline WeekendContainsDay WeekCalculator::weekend() const { - auto result = diplomat::capi::icu4x_WeekCalculator_weekend_mv1(this->AsFFI()); - return WeekendContainsDay::FromFFI(result); -} - -inline const diplomat::capi::WeekCalculator* WeekCalculator::AsFFI() const { - return reinterpret_cast<const diplomat::capi::WeekCalculator*>(this); -} - -inline diplomat::capi::WeekCalculator* WeekCalculator::AsFFI() { - return reinterpret_cast<diplomat::capi::WeekCalculator*>(this); -} - -inline const WeekCalculator* WeekCalculator::FromFFI(const diplomat::capi::WeekCalculator* ptr) { - return reinterpret_cast<const WeekCalculator*>(ptr); -} - -inline WeekCalculator* WeekCalculator::FromFFI(diplomat::capi::WeekCalculator* ptr) { - return reinterpret_cast<WeekCalculator*>(ptr); -} - -inline void WeekCalculator::operator delete(void* ptr) { - diplomat::capi::icu4x_WeekCalculator_destroy_mv1(reinterpret_cast<diplomat::capi::WeekCalculator*>(ptr)); -} - - -#endif // WeekCalculator_HPP diff --git a/ffi/capi/bindings/cpp/WeekOf.d.hpp b/ffi/capi/bindings/cpp/WeekOf.d.hpp deleted file mode 100644 index 200183d3eb7..00000000000 --- a/ffi/capi/bindings/cpp/WeekOf.d.hpp +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef WeekOf_D_HPP -#define WeekOf_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "WeekRelativeUnit.d.hpp" -#include "diplomat_runtime.hpp" - -class WeekRelativeUnit; - - -namespace diplomat { -namespace capi { - struct WeekOf { - uint16_t week; - diplomat::capi::WeekRelativeUnit unit; - }; -} // namespace capi -} // namespace - - -struct WeekOf { - uint16_t week; - WeekRelativeUnit unit; - - inline diplomat::capi::WeekOf AsFFI() const; - inline static WeekOf FromFFI(diplomat::capi::WeekOf c_struct); -}; - - -#endif // WeekOf_D_HPP diff --git a/ffi/capi/bindings/cpp/WeekOf.hpp b/ffi/capi/bindings/cpp/WeekOf.hpp deleted file mode 100644 index 454e4a94459..00000000000 --- a/ffi/capi/bindings/cpp/WeekOf.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef WeekOf_HPP -#define WeekOf_HPP - -#include "WeekOf.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "WeekRelativeUnit.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - - -inline diplomat::capi::WeekOf WeekOf::AsFFI() const { - return diplomat::capi::WeekOf { - /* .week = */ week, - /* .unit = */ unit.AsFFI(), - }; -} - -inline WeekOf WeekOf::FromFFI(diplomat::capi::WeekOf c_struct) { - return WeekOf { - /* .week = */ c_struct.week, - /* .unit = */ WeekRelativeUnit::FromFFI(c_struct.unit), - }; -} - - -#endif // WeekOf_HPP diff --git a/ffi/capi/bindings/cpp/WeekRelativeUnit.hpp b/ffi/capi/bindings/cpp/WeekRelativeUnit.hpp deleted file mode 100644 index 0ec80dfe5d3..00000000000 --- a/ffi/capi/bindings/cpp/WeekRelativeUnit.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef WeekRelativeUnit_HPP -#define WeekRelativeUnit_HPP - -#include "WeekRelativeUnit.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::capi::WeekRelativeUnit WeekRelativeUnit::AsFFI() const { - return static_cast<diplomat::capi::WeekRelativeUnit>(value); -} - -inline WeekRelativeUnit WeekRelativeUnit::FromFFI(diplomat::capi::WeekRelativeUnit c_enum) { - switch (c_enum) { - case diplomat::capi::WeekRelativeUnit_Previous: - case diplomat::capi::WeekRelativeUnit_Current: - case diplomat::capi::WeekRelativeUnit_Next: - return static_cast<WeekRelativeUnit::Value>(c_enum); - default: - abort(); - } -} -#endif // WeekRelativeUnit_HPP diff --git a/ffi/capi/bindings/cpp/WordBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/WordBreakIteratorLatin1.d.hpp deleted file mode 100644 index c3fdb31b5f6..00000000000 --- a/ffi/capi/bindings/cpp/WordBreakIteratorLatin1.d.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef WordBreakIteratorLatin1_D_HPP -#define WordBreakIteratorLatin1_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -class SegmenterWordType; - - -namespace diplomat { -namespace capi { - struct WordBreakIteratorLatin1; -} // namespace capi -} // namespace - -class WordBreakIteratorLatin1 { -public: - - inline int32_t next(); - - inline SegmenterWordType word_type() const; - - inline bool is_word_like() const; - - inline const diplomat::capi::WordBreakIteratorLatin1* AsFFI() const; - inline diplomat::capi::WordBreakIteratorLatin1* AsFFI(); - inline static const WordBreakIteratorLatin1* FromFFI(const diplomat::capi::WordBreakIteratorLatin1* ptr); - inline static WordBreakIteratorLatin1* FromFFI(diplomat::capi::WordBreakIteratorLatin1* ptr); - inline static void operator delete(void* ptr); -private: - WordBreakIteratorLatin1() = delete; - WordBreakIteratorLatin1(const WordBreakIteratorLatin1&) = delete; - WordBreakIteratorLatin1(WordBreakIteratorLatin1&&) noexcept = delete; - WordBreakIteratorLatin1 operator=(const WordBreakIteratorLatin1&) = delete; - WordBreakIteratorLatin1 operator=(WordBreakIteratorLatin1&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // WordBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/WordBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/WordBreakIteratorLatin1.hpp deleted file mode 100644 index 19f9ed0722f..00000000000 --- a/ffi/capi/bindings/cpp/WordBreakIteratorLatin1.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef WordBreakIteratorLatin1_HPP -#define WordBreakIteratorLatin1_HPP - -#include "WordBreakIteratorLatin1.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "SegmenterWordType.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_WordBreakIteratorLatin1_next_mv1(diplomat::capi::WordBreakIteratorLatin1* self); - - diplomat::capi::SegmenterWordType icu4x_WordBreakIteratorLatin1_word_type_mv1(const diplomat::capi::WordBreakIteratorLatin1* self); - - bool icu4x_WordBreakIteratorLatin1_is_word_like_mv1(const diplomat::capi::WordBreakIteratorLatin1* self); - - - void icu4x_WordBreakIteratorLatin1_destroy_mv1(WordBreakIteratorLatin1* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t WordBreakIteratorLatin1::next() { - auto result = diplomat::capi::icu4x_WordBreakIteratorLatin1_next_mv1(this->AsFFI()); - return result; -} - -inline SegmenterWordType WordBreakIteratorLatin1::word_type() const { - auto result = diplomat::capi::icu4x_WordBreakIteratorLatin1_word_type_mv1(this->AsFFI()); - return SegmenterWordType::FromFFI(result); -} - -inline bool WordBreakIteratorLatin1::is_word_like() const { - auto result = diplomat::capi::icu4x_WordBreakIteratorLatin1_is_word_like_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::WordBreakIteratorLatin1* WordBreakIteratorLatin1::AsFFI() const { - return reinterpret_cast<const diplomat::capi::WordBreakIteratorLatin1*>(this); -} - -inline diplomat::capi::WordBreakIteratorLatin1* WordBreakIteratorLatin1::AsFFI() { - return reinterpret_cast<diplomat::capi::WordBreakIteratorLatin1*>(this); -} - -inline const WordBreakIteratorLatin1* WordBreakIteratorLatin1::FromFFI(const diplomat::capi::WordBreakIteratorLatin1* ptr) { - return reinterpret_cast<const WordBreakIteratorLatin1*>(ptr); -} - -inline WordBreakIteratorLatin1* WordBreakIteratorLatin1::FromFFI(diplomat::capi::WordBreakIteratorLatin1* ptr) { - return reinterpret_cast<WordBreakIteratorLatin1*>(ptr); -} - -inline void WordBreakIteratorLatin1::operator delete(void* ptr) { - diplomat::capi::icu4x_WordBreakIteratorLatin1_destroy_mv1(reinterpret_cast<diplomat::capi::WordBreakIteratorLatin1*>(ptr)); -} - - -#endif // WordBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/WordBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/WordBreakIteratorUtf16.d.hpp deleted file mode 100644 index 9d1d2490034..00000000000 --- a/ffi/capi/bindings/cpp/WordBreakIteratorUtf16.d.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef WordBreakIteratorUtf16_D_HPP -#define WordBreakIteratorUtf16_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -class SegmenterWordType; - - -namespace diplomat { -namespace capi { - struct WordBreakIteratorUtf16; -} // namespace capi -} // namespace - -class WordBreakIteratorUtf16 { -public: - - inline int32_t next(); - - inline SegmenterWordType word_type() const; - - inline bool is_word_like() const; - - inline const diplomat::capi::WordBreakIteratorUtf16* AsFFI() const; - inline diplomat::capi::WordBreakIteratorUtf16* AsFFI(); - inline static const WordBreakIteratorUtf16* FromFFI(const diplomat::capi::WordBreakIteratorUtf16* ptr); - inline static WordBreakIteratorUtf16* FromFFI(diplomat::capi::WordBreakIteratorUtf16* ptr); - inline static void operator delete(void* ptr); -private: - WordBreakIteratorUtf16() = delete; - WordBreakIteratorUtf16(const WordBreakIteratorUtf16&) = delete; - WordBreakIteratorUtf16(WordBreakIteratorUtf16&&) noexcept = delete; - WordBreakIteratorUtf16 operator=(const WordBreakIteratorUtf16&) = delete; - WordBreakIteratorUtf16 operator=(WordBreakIteratorUtf16&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // WordBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/WordBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/WordBreakIteratorUtf16.hpp deleted file mode 100644 index d07d09424fd..00000000000 --- a/ffi/capi/bindings/cpp/WordBreakIteratorUtf16.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef WordBreakIteratorUtf16_HPP -#define WordBreakIteratorUtf16_HPP - -#include "WordBreakIteratorUtf16.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "SegmenterWordType.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_WordBreakIteratorUtf16_next_mv1(diplomat::capi::WordBreakIteratorUtf16* self); - - diplomat::capi::SegmenterWordType icu4x_WordBreakIteratorUtf16_word_type_mv1(const diplomat::capi::WordBreakIteratorUtf16* self); - - bool icu4x_WordBreakIteratorUtf16_is_word_like_mv1(const diplomat::capi::WordBreakIteratorUtf16* self); - - - void icu4x_WordBreakIteratorUtf16_destroy_mv1(WordBreakIteratorUtf16* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t WordBreakIteratorUtf16::next() { - auto result = diplomat::capi::icu4x_WordBreakIteratorUtf16_next_mv1(this->AsFFI()); - return result; -} - -inline SegmenterWordType WordBreakIteratorUtf16::word_type() const { - auto result = diplomat::capi::icu4x_WordBreakIteratorUtf16_word_type_mv1(this->AsFFI()); - return SegmenterWordType::FromFFI(result); -} - -inline bool WordBreakIteratorUtf16::is_word_like() const { - auto result = diplomat::capi::icu4x_WordBreakIteratorUtf16_is_word_like_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::WordBreakIteratorUtf16* WordBreakIteratorUtf16::AsFFI() const { - return reinterpret_cast<const diplomat::capi::WordBreakIteratorUtf16*>(this); -} - -inline diplomat::capi::WordBreakIteratorUtf16* WordBreakIteratorUtf16::AsFFI() { - return reinterpret_cast<diplomat::capi::WordBreakIteratorUtf16*>(this); -} - -inline const WordBreakIteratorUtf16* WordBreakIteratorUtf16::FromFFI(const diplomat::capi::WordBreakIteratorUtf16* ptr) { - return reinterpret_cast<const WordBreakIteratorUtf16*>(ptr); -} - -inline WordBreakIteratorUtf16* WordBreakIteratorUtf16::FromFFI(diplomat::capi::WordBreakIteratorUtf16* ptr) { - return reinterpret_cast<WordBreakIteratorUtf16*>(ptr); -} - -inline void WordBreakIteratorUtf16::operator delete(void* ptr) { - diplomat::capi::icu4x_WordBreakIteratorUtf16_destroy_mv1(reinterpret_cast<diplomat::capi::WordBreakIteratorUtf16*>(ptr)); -} - - -#endif // WordBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/WordBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/WordBreakIteratorUtf8.d.hpp deleted file mode 100644 index e517aa672bd..00000000000 --- a/ffi/capi/bindings/cpp/WordBreakIteratorUtf8.d.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef WordBreakIteratorUtf8_D_HPP -#define WordBreakIteratorUtf8_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -class SegmenterWordType; - - -namespace diplomat { -namespace capi { - struct WordBreakIteratorUtf8; -} // namespace capi -} // namespace - -class WordBreakIteratorUtf8 { -public: - - inline int32_t next(); - - inline SegmenterWordType word_type() const; - - inline bool is_word_like() const; - - inline const diplomat::capi::WordBreakIteratorUtf8* AsFFI() const; - inline diplomat::capi::WordBreakIteratorUtf8* AsFFI(); - inline static const WordBreakIteratorUtf8* FromFFI(const diplomat::capi::WordBreakIteratorUtf8* ptr); - inline static WordBreakIteratorUtf8* FromFFI(diplomat::capi::WordBreakIteratorUtf8* ptr); - inline static void operator delete(void* ptr); -private: - WordBreakIteratorUtf8() = delete; - WordBreakIteratorUtf8(const WordBreakIteratorUtf8&) = delete; - WordBreakIteratorUtf8(WordBreakIteratorUtf8&&) noexcept = delete; - WordBreakIteratorUtf8 operator=(const WordBreakIteratorUtf8&) = delete; - WordBreakIteratorUtf8 operator=(WordBreakIteratorUtf8&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // WordBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/WordBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/WordBreakIteratorUtf8.hpp deleted file mode 100644 index ec85fddaccc..00000000000 --- a/ffi/capi/bindings/cpp/WordBreakIteratorUtf8.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef WordBreakIteratorUtf8_HPP -#define WordBreakIteratorUtf8_HPP - -#include "WordBreakIteratorUtf8.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "SegmenterWordType.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - int32_t icu4x_WordBreakIteratorUtf8_next_mv1(diplomat::capi::WordBreakIteratorUtf8* self); - - diplomat::capi::SegmenterWordType icu4x_WordBreakIteratorUtf8_word_type_mv1(const diplomat::capi::WordBreakIteratorUtf8* self); - - bool icu4x_WordBreakIteratorUtf8_is_word_like_mv1(const diplomat::capi::WordBreakIteratorUtf8* self); - - - void icu4x_WordBreakIteratorUtf8_destroy_mv1(WordBreakIteratorUtf8* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline int32_t WordBreakIteratorUtf8::next() { - auto result = diplomat::capi::icu4x_WordBreakIteratorUtf8_next_mv1(this->AsFFI()); - return result; -} - -inline SegmenterWordType WordBreakIteratorUtf8::word_type() const { - auto result = diplomat::capi::icu4x_WordBreakIteratorUtf8_word_type_mv1(this->AsFFI()); - return SegmenterWordType::FromFFI(result); -} - -inline bool WordBreakIteratorUtf8::is_word_like() const { - auto result = diplomat::capi::icu4x_WordBreakIteratorUtf8_is_word_like_mv1(this->AsFFI()); - return result; -} - -inline const diplomat::capi::WordBreakIteratorUtf8* WordBreakIteratorUtf8::AsFFI() const { - return reinterpret_cast<const diplomat::capi::WordBreakIteratorUtf8*>(this); -} - -inline diplomat::capi::WordBreakIteratorUtf8* WordBreakIteratorUtf8::AsFFI() { - return reinterpret_cast<diplomat::capi::WordBreakIteratorUtf8*>(this); -} - -inline const WordBreakIteratorUtf8* WordBreakIteratorUtf8::FromFFI(const diplomat::capi::WordBreakIteratorUtf8* ptr) { - return reinterpret_cast<const WordBreakIteratorUtf8*>(ptr); -} - -inline WordBreakIteratorUtf8* WordBreakIteratorUtf8::FromFFI(diplomat::capi::WordBreakIteratorUtf8* ptr) { - return reinterpret_cast<WordBreakIteratorUtf8*>(ptr); -} - -inline void WordBreakIteratorUtf8::operator delete(void* ptr) { - diplomat::capi::icu4x_WordBreakIteratorUtf8_destroy_mv1(reinterpret_cast<diplomat::capi::WordBreakIteratorUtf8*>(ptr)); -} - - -#endif // WordBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/WordSegmenter.d.hpp b/ffi/capi/bindings/cpp/WordSegmenter.d.hpp deleted file mode 100644 index fbc7a111b6a..00000000000 --- a/ffi/capi/bindings/cpp/WordSegmenter.d.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef WordSegmenter_D_HPP -#define WordSegmenter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct WordBreakIteratorLatin1; } -class WordBreakIteratorLatin1; -namespace diplomat::capi { struct WordBreakIteratorUtf16; } -class WordBreakIteratorUtf16; -namespace diplomat::capi { struct WordBreakIteratorUtf8; } -class WordBreakIteratorUtf8; -class DataError; - - -namespace diplomat { -namespace capi { - struct WordSegmenter; -} // namespace capi -} // namespace - -class WordSegmenter { -public: - - inline static diplomat::result<std::unique_ptr<WordSegmenter>, DataError> create_auto(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<WordSegmenter>, DataError> create_lstm(const DataProvider& provider); - - inline static diplomat::result<std::unique_ptr<WordSegmenter>, DataError> create_dictionary(const DataProvider& provider); - - inline std::unique_ptr<WordBreakIteratorUtf8> segment(std::string_view input) const; - - inline std::unique_ptr<WordBreakIteratorUtf16> segment16(std::u16string_view input) const; - - inline std::unique_ptr<WordBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; - - inline const diplomat::capi::WordSegmenter* AsFFI() const; - inline diplomat::capi::WordSegmenter* AsFFI(); - inline static const WordSegmenter* FromFFI(const diplomat::capi::WordSegmenter* ptr); - inline static WordSegmenter* FromFFI(diplomat::capi::WordSegmenter* ptr); - inline static void operator delete(void* ptr); -private: - WordSegmenter() = delete; - WordSegmenter(const WordSegmenter&) = delete; - WordSegmenter(WordSegmenter&&) noexcept = delete; - WordSegmenter operator=(const WordSegmenter&) = delete; - WordSegmenter operator=(WordSegmenter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // WordSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/WordSegmenter.hpp b/ffi/capi/bindings/cpp/WordSegmenter.hpp deleted file mode 100644 index ca24fd5fa7a..00000000000 --- a/ffi/capi/bindings/cpp/WordSegmenter.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef WordSegmenter_HPP -#define WordSegmenter_HPP - -#include "WordSegmenter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "DataError.hpp" -#include "DataProvider.hpp" -#include "WordBreakIteratorLatin1.hpp" -#include "WordBreakIteratorUtf16.hpp" -#include "WordBreakIteratorUtf8.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_WordSegmenter_create_auto_mv1_result {union {diplomat::capi::WordSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_auto_mv1_result; - icu4x_WordSegmenter_create_auto_mv1_result icu4x_WordSegmenter_create_auto_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_WordSegmenter_create_lstm_mv1_result {union {diplomat::capi::WordSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_lstm_mv1_result; - icu4x_WordSegmenter_create_lstm_mv1_result icu4x_WordSegmenter_create_lstm_mv1(const diplomat::capi::DataProvider* provider); - - typedef struct icu4x_WordSegmenter_create_dictionary_mv1_result {union {diplomat::capi::WordSegmenter* ok; diplomat::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_dictionary_mv1_result; - icu4x_WordSegmenter_create_dictionary_mv1_result icu4x_WordSegmenter_create_dictionary_mv1(const diplomat::capi::DataProvider* provider); - - diplomat::capi::WordBreakIteratorUtf8* icu4x_WordSegmenter_segment_utf8_mv1(const diplomat::capi::WordSegmenter* self, const char* input_data, size_t input_len); - - diplomat::capi::WordBreakIteratorUtf16* icu4x_WordSegmenter_segment_utf16_mv1(const diplomat::capi::WordSegmenter* self, const char16_t* input_data, size_t input_len); - - diplomat::capi::WordBreakIteratorLatin1* icu4x_WordSegmenter_segment_latin1_mv1(const diplomat::capi::WordSegmenter* self, const uint8_t* input_data, size_t input_len); - - - void icu4x_WordSegmenter_destroy_mv1(WordSegmenter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<WordSegmenter>, DataError> WordSegmenter::create_auto(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_WordSegmenter_create_auto_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<WordSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<WordSegmenter>>(std::unique_ptr<WordSegmenter>(WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<WordSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<WordSegmenter>, DataError> WordSegmenter::create_lstm(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_WordSegmenter_create_lstm_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<WordSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<WordSegmenter>>(std::unique_ptr<WordSegmenter>(WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<WordSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<WordSegmenter>, DataError> WordSegmenter::create_dictionary(const DataProvider& provider) { - auto result = diplomat::capi::icu4x_WordSegmenter_create_dictionary_mv1(provider.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<WordSegmenter>, DataError>(diplomat::Ok<std::unique_ptr<WordSegmenter>>(std::unique_ptr<WordSegmenter>(WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<WordSegmenter>, DataError>(diplomat::Err<DataError>(DataError::FromFFI(result.err))); -} - -inline std::unique_ptr<WordBreakIteratorUtf8> WordSegmenter::segment(std::string_view input) const { - auto result = diplomat::capi::icu4x_WordSegmenter_segment_utf8_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<WordBreakIteratorUtf8>(WordBreakIteratorUtf8::FromFFI(result)); -} - -inline std::unique_ptr<WordBreakIteratorUtf16> WordSegmenter::segment16(std::u16string_view input) const { - auto result = diplomat::capi::icu4x_WordSegmenter_segment_utf16_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<WordBreakIteratorUtf16>(WordBreakIteratorUtf16::FromFFI(result)); -} - -inline std::unique_ptr<WordBreakIteratorLatin1> WordSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { - auto result = diplomat::capi::icu4x_WordSegmenter_segment_latin1_mv1(this->AsFFI(), - input.data(), - input.size()); - return std::unique_ptr<WordBreakIteratorLatin1>(WordBreakIteratorLatin1::FromFFI(result)); -} - -inline const diplomat::capi::WordSegmenter* WordSegmenter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::WordSegmenter*>(this); -} - -inline diplomat::capi::WordSegmenter* WordSegmenter::AsFFI() { - return reinterpret_cast<diplomat::capi::WordSegmenter*>(this); -} - -inline const WordSegmenter* WordSegmenter::FromFFI(const diplomat::capi::WordSegmenter* ptr) { - return reinterpret_cast<const WordSegmenter*>(ptr); -} - -inline WordSegmenter* WordSegmenter::FromFFI(diplomat::capi::WordSegmenter* ptr) { - return reinterpret_cast<WordSegmenter*>(ptr); -} - -inline void WordSegmenter::operator delete(void* ptr) { - diplomat::capi::icu4x_WordSegmenter_destroy_mv1(reinterpret_cast<diplomat::capi::WordSegmenter*>(ptr)); -} - - -#endif // WordSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/ZonedDateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/ZonedDateTimeFormatter.d.hpp deleted file mode 100644 index a774aea9a48..00000000000 --- a/ffi/capi/bindings/cpp/ZonedDateTimeFormatter.d.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef ZonedDateTimeFormatter_D_HPP -#define ZonedDateTimeFormatter_D_HPP - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "diplomat_runtime.hpp" - -namespace diplomat::capi { struct CustomTimeZone; } -class CustomTimeZone; -namespace diplomat::capi { struct DataProvider; } -class DataProvider; -namespace diplomat::capi { struct DateTime; } -class DateTime; -namespace diplomat::capi { struct IsoDateTime; } -class IsoDateTime; -namespace diplomat::capi { struct Locale; } -class Locale; -struct IsoTimeZoneOptions; -class DateLength; -class Error; -class TimeLength; - - -namespace diplomat { -namespace capi { - struct ZonedDateTimeFormatter; -} // namespace capi -} // namespace - -class ZonedDateTimeFormatter { -public: - - inline static diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error> create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length); - - inline static diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error> create_with_lengths_and_iso_8601_time_zone_fallback(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length, IsoTimeZoneOptions zone_options); - - inline diplomat::result<std::string, Error> format_datetime_with_custom_time_zone(const DateTime& datetime, const CustomTimeZone& time_zone) const; - - inline diplomat::result<std::string, Error> format_iso_datetime_with_custom_time_zone(const IsoDateTime& datetime, const CustomTimeZone& time_zone) const; - - inline const diplomat::capi::ZonedDateTimeFormatter* AsFFI() const; - inline diplomat::capi::ZonedDateTimeFormatter* AsFFI(); - inline static const ZonedDateTimeFormatter* FromFFI(const diplomat::capi::ZonedDateTimeFormatter* ptr); - inline static ZonedDateTimeFormatter* FromFFI(diplomat::capi::ZonedDateTimeFormatter* ptr); - inline static void operator delete(void* ptr); -private: - ZonedDateTimeFormatter() = delete; - ZonedDateTimeFormatter(const ZonedDateTimeFormatter&) = delete; - ZonedDateTimeFormatter(ZonedDateTimeFormatter&&) noexcept = delete; - ZonedDateTimeFormatter operator=(const ZonedDateTimeFormatter&) = delete; - ZonedDateTimeFormatter operator=(ZonedDateTimeFormatter&&) noexcept = delete; - static void operator delete[](void*, size_t) = delete; -}; - - -#endif // ZonedDateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/ZonedDateTimeFormatter.hpp b/ffi/capi/bindings/cpp/ZonedDateTimeFormatter.hpp deleted file mode 100644 index 1da8a0dfefc..00000000000 --- a/ffi/capi/bindings/cpp/ZonedDateTimeFormatter.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef ZonedDateTimeFormatter_HPP -#define ZonedDateTimeFormatter_HPP - -#include "ZonedDateTimeFormatter.d.hpp" - -#include <stdio.h> -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <memory> -#include <optional> -#include "CustomTimeZone.hpp" -#include "DataProvider.hpp" -#include "DateLength.hpp" -#include "DateTime.hpp" -#include "Error.hpp" -#include "IsoDateTime.hpp" -#include "IsoTimeZoneOptions.hpp" -#include "Locale.hpp" -#include "TimeLength.hpp" -#include "diplomat_runtime.hpp" - - -namespace diplomat { -namespace capi { - extern "C" { - - typedef struct icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1_result {union {diplomat::capi::ZonedDateTimeFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1_result; - icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1_result icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength date_length, diplomat::capi::TimeLength time_length); - - typedef struct icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result {union {diplomat::capi::ZonedDateTimeFormatter* ok; diplomat::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result; - icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(const diplomat::capi::DataProvider* provider, const diplomat::capi::Locale* locale, diplomat::capi::DateLength date_length, diplomat::capi::TimeLength time_length, diplomat::capi::IsoTimeZoneOptions zone_options); - - typedef struct icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1_result; - icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1_result icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1(const diplomat::capi::ZonedDateTimeFormatter* self, const diplomat::capi::DateTime* datetime, const diplomat::capi::CustomTimeZone* time_zone, diplomat::capi::DiplomatWrite* write); - - typedef struct icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1_result {union { diplomat::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1_result; - icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1_result icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(const diplomat::capi::ZonedDateTimeFormatter* self, const diplomat::capi::IsoDateTime* datetime, const diplomat::capi::CustomTimeZone* time_zone, diplomat::capi::DiplomatWrite* write); - - - void icu4x_ZonedDateTimeFormatter_destroy_mv1(ZonedDateTimeFormatter* self); - - } // extern "C" -} // namespace capi -} // namespace - -inline diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error> ZonedDateTimeFormatter::create_with_lengths(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length) { - auto result = diplomat::capi::icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), - locale.AsFFI(), - date_length.AsFFI(), - time_length.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error>(diplomat::Ok<std::unique_ptr<ZonedDateTimeFormatter>>(std::unique_ptr<ZonedDateTimeFormatter>(ZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error> ZonedDateTimeFormatter::create_with_lengths_and_iso_8601_time_zone_fallback(const DataProvider& provider, const Locale& locale, DateLength date_length, TimeLength time_length, IsoTimeZoneOptions zone_options) { - auto result = diplomat::capi::icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(provider.AsFFI(), - locale.AsFFI(), - date_length.AsFFI(), - time_length.AsFFI(), - zone_options.AsFFI()); - return result.is_ok ? diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error>(diplomat::Ok<std::unique_ptr<ZonedDateTimeFormatter>>(std::unique_ptr<ZonedDateTimeFormatter>(ZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<ZonedDateTimeFormatter>, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> ZonedDateTimeFormatter::format_datetime_with_custom_time_zone(const DateTime& datetime, const CustomTimeZone& time_zone) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1(this->AsFFI(), - datetime.AsFFI(), - time_zone.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline diplomat::result<std::string, Error> ZonedDateTimeFormatter::format_iso_datetime_with_custom_time_zone(const IsoDateTime& datetime, const CustomTimeZone& time_zone) const { - std::string output; - diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); - auto result = diplomat::capi::icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(this->AsFFI(), - datetime.AsFFI(), - time_zone.AsFFI(), - &write); - return result.is_ok ? diplomat::result<std::string, Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, Error>(diplomat::Err<Error>(Error::FromFFI(result.err))); -} - -inline const diplomat::capi::ZonedDateTimeFormatter* ZonedDateTimeFormatter::AsFFI() const { - return reinterpret_cast<const diplomat::capi::ZonedDateTimeFormatter*>(this); -} - -inline diplomat::capi::ZonedDateTimeFormatter* ZonedDateTimeFormatter::AsFFI() { - return reinterpret_cast<diplomat::capi::ZonedDateTimeFormatter*>(this); -} - -inline const ZonedDateTimeFormatter* ZonedDateTimeFormatter::FromFFI(const diplomat::capi::ZonedDateTimeFormatter* ptr) { - return reinterpret_cast<const ZonedDateTimeFormatter*>(ptr); -} - -inline ZonedDateTimeFormatter* ZonedDateTimeFormatter::FromFFI(diplomat::capi::ZonedDateTimeFormatter* ptr) { - return reinterpret_cast<ZonedDateTimeFormatter*>(ptr); -} - -inline void ZonedDateTimeFormatter::operator delete(void* ptr) { - diplomat::capi::icu4x_ZonedDateTimeFormatter_destroy_mv1(reinterpret_cast<diplomat::capi::ZonedDateTimeFormatter*>(ptr)); -} - - -#endif // ZonedDateTimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/AnyCalendarKind.d.hpp b/ffi/capi/bindings/cpp/icu4x/AnyCalendarKind.d.hpp similarity index 73% rename from ffi/capi/bindings/cpp/AnyCalendarKind.d.hpp rename to ffi/capi/bindings/cpp/icu4x/AnyCalendarKind.d.hpp index 56161870b80..9cce1ea8d58 100644 --- a/ffi/capi/bindings/cpp/AnyCalendarKind.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/AnyCalendarKind.d.hpp @@ -1,5 +1,5 @@ -#ifndef AnyCalendarKind_D_HPP -#define AnyCalendarKind_D_HPP +#ifndef icu4x_AnyCalendarKind_D_HPP +#define icu4x_AnyCalendarKind_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,13 +7,16 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat::capi { struct Locale; } +namespace icu4x { +namespace capi { struct Locale; } class Locale; +class AnyCalendarKind; +} -namespace diplomat { +namespace icu4x { namespace capi { enum AnyCalendarKind { AnyCalendarKind_Iso = 0, @@ -38,6 +41,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class AnyCalendarKind { public: enum Value { @@ -68,17 +72,17 @@ class AnyCalendarKind { // Prevent usage as boolean value explicit operator bool() const = delete; - inline static std::optional<AnyCalendarKind> get_for_locale(const Locale& locale); + inline static std::optional<icu4x::AnyCalendarKind> get_for_locale(const icu4x::Locale& locale); - inline static std::optional<AnyCalendarKind> get_for_bcp47(std::string_view s); + inline static std::optional<icu4x::AnyCalendarKind> get_for_bcp47(std::string_view s); inline std::string bcp47(); - inline diplomat::capi::AnyCalendarKind AsFFI() const; - inline static AnyCalendarKind FromFFI(diplomat::capi::AnyCalendarKind c_enum); + inline icu4x::capi::AnyCalendarKind AsFFI() const; + inline static icu4x::AnyCalendarKind FromFFI(icu4x::capi::AnyCalendarKind c_enum); private: Value value; }; - -#endif // AnyCalendarKind_D_HPP +} // namespace +#endif // icu4x_AnyCalendarKind_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/AnyCalendarKind.hpp b/ffi/capi/bindings/cpp/icu4x/AnyCalendarKind.hpp new file mode 100644 index 00000000000..ba16b64f320 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/AnyCalendarKind.hpp @@ -0,0 +1,81 @@ +#ifndef icu4x_AnyCalendarKind_HPP +#define icu4x_AnyCalendarKind_HPP + +#include "AnyCalendarKind.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_AnyCalendarKind_get_for_locale_mv1_result {union {icu4x::capi::AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_locale_mv1_result; + icu4x_AnyCalendarKind_get_for_locale_mv1_result icu4x_AnyCalendarKind_get_for_locale_mv1(const icu4x::capi::Locale* locale); + + typedef struct icu4x_AnyCalendarKind_get_for_bcp47_mv1_result {union {icu4x::capi::AnyCalendarKind ok; }; bool is_ok;} icu4x_AnyCalendarKind_get_for_bcp47_mv1_result; + icu4x_AnyCalendarKind_get_for_bcp47_mv1_result icu4x_AnyCalendarKind_get_for_bcp47_mv1(const char* s_data, size_t s_len); + + void icu4x_AnyCalendarKind_bcp47_mv1(icu4x::capi::AnyCalendarKind self, diplomat::capi::DiplomatWrite* write); + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::AnyCalendarKind icu4x::AnyCalendarKind::AsFFI() const { + return static_cast<icu4x::capi::AnyCalendarKind>(value); +} + +inline icu4x::AnyCalendarKind icu4x::AnyCalendarKind::FromFFI(icu4x::capi::AnyCalendarKind c_enum) { + switch (c_enum) { + case icu4x::capi::AnyCalendarKind_Iso: + case icu4x::capi::AnyCalendarKind_Gregorian: + case icu4x::capi::AnyCalendarKind_Buddhist: + case icu4x::capi::AnyCalendarKind_Japanese: + case icu4x::capi::AnyCalendarKind_JapaneseExtended: + case icu4x::capi::AnyCalendarKind_Ethiopian: + case icu4x::capi::AnyCalendarKind_EthiopianAmeteAlem: + case icu4x::capi::AnyCalendarKind_Indian: + case icu4x::capi::AnyCalendarKind_Coptic: + case icu4x::capi::AnyCalendarKind_Dangi: + case icu4x::capi::AnyCalendarKind_Chinese: + case icu4x::capi::AnyCalendarKind_Hebrew: + case icu4x::capi::AnyCalendarKind_IslamicCivil: + case icu4x::capi::AnyCalendarKind_IslamicObservational: + case icu4x::capi::AnyCalendarKind_IslamicTabular: + case icu4x::capi::AnyCalendarKind_IslamicUmmAlQura: + case icu4x::capi::AnyCalendarKind_Persian: + case icu4x::capi::AnyCalendarKind_Roc: + return static_cast<icu4x::AnyCalendarKind::Value>(c_enum); + default: + abort(); + } +} + +inline std::optional<icu4x::AnyCalendarKind> icu4x::AnyCalendarKind::get_for_locale(const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_AnyCalendarKind_get_for_locale_mv1(locale.AsFFI()); + return result.is_ok ? std::optional<icu4x::AnyCalendarKind>(icu4x::AnyCalendarKind::FromFFI(result.ok)) : std::nullopt; +} + +inline std::optional<icu4x::AnyCalendarKind> icu4x::AnyCalendarKind::get_for_bcp47(std::string_view s) { + auto result = icu4x::capi::icu4x_AnyCalendarKind_get_for_bcp47_mv1(s.data(), + s.size()); + return result.is_ok ? std::optional<icu4x::AnyCalendarKind>(icu4x::AnyCalendarKind::FromFFI(result.ok)) : std::nullopt; +} + +inline std::string icu4x::AnyCalendarKind::bcp47() { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_AnyCalendarKind_bcp47_mv1(this->AsFFI(), + &write); + return output; +} +#endif // icu4x_AnyCalendarKind_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Bidi.d.hpp b/ffi/capi/bindings/cpp/icu4x/Bidi.d.hpp new file mode 100644 index 00000000000..18c40287733 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Bidi.d.hpp @@ -0,0 +1,64 @@ +#ifndef icu4x_Bidi_D_HPP +#define icu4x_Bidi_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Bidi; } +class Bidi; +namespace capi { struct BidiInfo; } +class BidiInfo; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct ReorderedIndexMap; } +class ReorderedIndexMap; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct Bidi; +} // namespace capi +} // namespace + +namespace icu4x { +class Bidi { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline std::unique_ptr<icu4x::BidiInfo> for_text(std::string_view text, uint8_t default_level) const; + + inline std::unique_ptr<icu4x::ReorderedIndexMap> reorder_visual(diplomat::span<const uint8_t> levels) const; + + inline static bool level_is_rtl(uint8_t level); + + inline static bool level_is_ltr(uint8_t level); + + inline static uint8_t level_rtl(); + + inline static uint8_t level_ltr(); + + inline const icu4x::capi::Bidi* AsFFI() const; + inline icu4x::capi::Bidi* AsFFI(); + inline static const icu4x::Bidi* FromFFI(const icu4x::capi::Bidi* ptr); + inline static icu4x::Bidi* FromFFI(icu4x::capi::Bidi* ptr); + inline static void operator delete(void* ptr); +private: + Bidi() = delete; + Bidi(const icu4x::Bidi&) = delete; + Bidi(icu4x::Bidi&&) noexcept = delete; + Bidi operator=(const icu4x::Bidi&) = delete; + Bidi operator=(icu4x::Bidi&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_Bidi_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Bidi.hpp b/ffi/capi/bindings/cpp/icu4x/Bidi.hpp new file mode 100644 index 00000000000..fa60d7ac710 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Bidi.hpp @@ -0,0 +1,106 @@ +#ifndef icu4x_Bidi_HPP +#define icu4x_Bidi_HPP + +#include "Bidi.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "BidiInfo.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "ReorderedIndexMap.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_Bidi_create_mv1_result {union {icu4x::capi::Bidi* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Bidi_create_mv1_result; + icu4x_Bidi_create_mv1_result icu4x_Bidi_create_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::BidiInfo* icu4x_Bidi_for_text_utf8_mv1(const icu4x::capi::Bidi* self, const char* text_data, size_t text_len, uint8_t default_level); + + icu4x::capi::ReorderedIndexMap* icu4x_Bidi_reorder_visual_mv1(const icu4x::capi::Bidi* self, const uint8_t* levels_data, size_t levels_len); + + bool icu4x_Bidi_level_is_rtl_mv1(uint8_t level); + + bool icu4x_Bidi_level_is_ltr_mv1(uint8_t level); + + uint8_t icu4x_Bidi_level_rtl_mv1(void); + + uint8_t icu4x_Bidi_level_ltr_mv1(void); + + + void icu4x_Bidi_destroy_mv1(Bidi* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError> icu4x::Bidi::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_Bidi_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Bidi>>(std::unique_ptr<icu4x::Bidi>(icu4x::Bidi::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Bidi>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::BidiInfo> icu4x::Bidi::for_text(std::string_view text, uint8_t default_level) const { + auto result = icu4x::capi::icu4x_Bidi_for_text_utf8_mv1(this->AsFFI(), + text.data(), + text.size(), + default_level); + return std::unique_ptr<icu4x::BidiInfo>(icu4x::BidiInfo::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::ReorderedIndexMap> icu4x::Bidi::reorder_visual(diplomat::span<const uint8_t> levels) const { + auto result = icu4x::capi::icu4x_Bidi_reorder_visual_mv1(this->AsFFI(), + levels.data(), + levels.size()); + return std::unique_ptr<icu4x::ReorderedIndexMap>(icu4x::ReorderedIndexMap::FromFFI(result)); +} + +inline bool icu4x::Bidi::level_is_rtl(uint8_t level) { + auto result = icu4x::capi::icu4x_Bidi_level_is_rtl_mv1(level); + return result; +} + +inline bool icu4x::Bidi::level_is_ltr(uint8_t level) { + auto result = icu4x::capi::icu4x_Bidi_level_is_ltr_mv1(level); + return result; +} + +inline uint8_t icu4x::Bidi::level_rtl() { + auto result = icu4x::capi::icu4x_Bidi_level_rtl_mv1(); + return result; +} + +inline uint8_t icu4x::Bidi::level_ltr() { + auto result = icu4x::capi::icu4x_Bidi_level_ltr_mv1(); + return result; +} + +inline const icu4x::capi::Bidi* icu4x::Bidi::AsFFI() const { + return reinterpret_cast<const icu4x::capi::Bidi*>(this); +} + +inline icu4x::capi::Bidi* icu4x::Bidi::AsFFI() { + return reinterpret_cast<icu4x::capi::Bidi*>(this); +} + +inline const icu4x::Bidi* icu4x::Bidi::FromFFI(const icu4x::capi::Bidi* ptr) { + return reinterpret_cast<const icu4x::Bidi*>(ptr); +} + +inline icu4x::Bidi* icu4x::Bidi::FromFFI(icu4x::capi::Bidi* ptr) { + return reinterpret_cast<icu4x::Bidi*>(ptr); +} + +inline void icu4x::Bidi::operator delete(void* ptr) { + icu4x::capi::icu4x_Bidi_destroy_mv1(reinterpret_cast<icu4x::capi::Bidi*>(ptr)); +} + + +#endif // icu4x_Bidi_HPP diff --git a/ffi/capi/bindings/cpp/BidiDirection.d.hpp b/ffi/capi/bindings/cpp/icu4x/BidiDirection.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/BidiDirection.d.hpp rename to ffi/capi/bindings/cpp/icu4x/BidiDirection.d.hpp index b017c432261..264cede14f7 100644 --- a/ffi/capi/bindings/cpp/BidiDirection.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/BidiDirection.d.hpp @@ -1,5 +1,5 @@ -#ifndef BidiDirection_D_HPP -#define BidiDirection_D_HPP +#ifndef icu4x_BidiDirection_D_HPP +#define icu4x_BidiDirection_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum BidiDirection { BidiDirection_Ltr = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class BidiDirection { public: enum Value { @@ -35,11 +36,11 @@ class BidiDirection { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::BidiDirection AsFFI() const; - inline static BidiDirection FromFFI(diplomat::capi::BidiDirection c_enum); + inline icu4x::capi::BidiDirection AsFFI() const; + inline static icu4x::BidiDirection FromFFI(icu4x::capi::BidiDirection c_enum); private: Value value; }; - -#endif // BidiDirection_D_HPP +} // namespace +#endif // icu4x_BidiDirection_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/BidiDirection.hpp b/ffi/capi/bindings/cpp/icu4x/BidiDirection.hpp new file mode 100644 index 00000000000..b23920c3a49 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/BidiDirection.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_BidiDirection_HPP +#define icu4x_BidiDirection_HPP + +#include "BidiDirection.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::BidiDirection icu4x::BidiDirection::AsFFI() const { + return static_cast<icu4x::capi::BidiDirection>(value); +} + +inline icu4x::BidiDirection icu4x::BidiDirection::FromFFI(icu4x::capi::BidiDirection c_enum) { + switch (c_enum) { + case icu4x::capi::BidiDirection_Ltr: + case icu4x::capi::BidiDirection_Rtl: + case icu4x::capi::BidiDirection_Mixed: + return static_cast<icu4x::BidiDirection::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_BidiDirection_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/BidiInfo.d.hpp b/ffi/capi/bindings/cpp/icu4x/BidiInfo.d.hpp new file mode 100644 index 00000000000..e042aeb28bf --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/BidiInfo.d.hpp @@ -0,0 +1,51 @@ +#ifndef icu4x_BidiInfo_D_HPP +#define icu4x_BidiInfo_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct BidiParagraph; } +class BidiParagraph; +} + + +namespace icu4x { +namespace capi { + struct BidiInfo; +} // namespace capi +} // namespace + +namespace icu4x { +class BidiInfo { +public: + + inline size_t paragraph_count() const; + + inline std::unique_ptr<icu4x::BidiParagraph> paragraph_at(size_t n) const; + + inline size_t size() const; + + inline uint8_t level_at(size_t pos) const; + + inline const icu4x::capi::BidiInfo* AsFFI() const; + inline icu4x::capi::BidiInfo* AsFFI(); + inline static const icu4x::BidiInfo* FromFFI(const icu4x::capi::BidiInfo* ptr); + inline static icu4x::BidiInfo* FromFFI(icu4x::capi::BidiInfo* ptr); + inline static void operator delete(void* ptr); +private: + BidiInfo() = delete; + BidiInfo(const icu4x::BidiInfo&) = delete; + BidiInfo(icu4x::BidiInfo&&) noexcept = delete; + BidiInfo operator=(const icu4x::BidiInfo&) = delete; + BidiInfo operator=(icu4x::BidiInfo&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_BidiInfo_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/BidiInfo.hpp b/ffi/capi/bindings/cpp/icu4x/BidiInfo.hpp new file mode 100644 index 00000000000..338c8909b26 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/BidiInfo.hpp @@ -0,0 +1,78 @@ +#ifndef icu4x_BidiInfo_HPP +#define icu4x_BidiInfo_HPP + +#include "BidiInfo.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "BidiParagraph.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + size_t icu4x_BidiInfo_paragraph_count_mv1(const icu4x::capi::BidiInfo* self); + + icu4x::capi::BidiParagraph* icu4x_BidiInfo_paragraph_at_mv1(const icu4x::capi::BidiInfo* self, size_t n); + + size_t icu4x_BidiInfo_size_mv1(const icu4x::capi::BidiInfo* self); + + uint8_t icu4x_BidiInfo_level_at_mv1(const icu4x::capi::BidiInfo* self, size_t pos); + + + void icu4x_BidiInfo_destroy_mv1(BidiInfo* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline size_t icu4x::BidiInfo::paragraph_count() const { + auto result = icu4x::capi::icu4x_BidiInfo_paragraph_count_mv1(this->AsFFI()); + return result; +} + +inline std::unique_ptr<icu4x::BidiParagraph> icu4x::BidiInfo::paragraph_at(size_t n) const { + auto result = icu4x::capi::icu4x_BidiInfo_paragraph_at_mv1(this->AsFFI(), + n); + return std::unique_ptr<icu4x::BidiParagraph>(icu4x::BidiParagraph::FromFFI(result)); +} + +inline size_t icu4x::BidiInfo::size() const { + auto result = icu4x::capi::icu4x_BidiInfo_size_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::BidiInfo::level_at(size_t pos) const { + auto result = icu4x::capi::icu4x_BidiInfo_level_at_mv1(this->AsFFI(), + pos); + return result; +} + +inline const icu4x::capi::BidiInfo* icu4x::BidiInfo::AsFFI() const { + return reinterpret_cast<const icu4x::capi::BidiInfo*>(this); +} + +inline icu4x::capi::BidiInfo* icu4x::BidiInfo::AsFFI() { + return reinterpret_cast<icu4x::capi::BidiInfo*>(this); +} + +inline const icu4x::BidiInfo* icu4x::BidiInfo::FromFFI(const icu4x::capi::BidiInfo* ptr) { + return reinterpret_cast<const icu4x::BidiInfo*>(ptr); +} + +inline icu4x::BidiInfo* icu4x::BidiInfo::FromFFI(icu4x::capi::BidiInfo* ptr) { + return reinterpret_cast<icu4x::BidiInfo*>(ptr); +} + +inline void icu4x::BidiInfo::operator delete(void* ptr) { + icu4x::capi::icu4x_BidiInfo_destroy_mv1(reinterpret_cast<icu4x::capi::BidiInfo*>(ptr)); +} + + +#endif // icu4x_BidiInfo_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/BidiParagraph.d.hpp b/ffi/capi/bindings/cpp/icu4x/BidiParagraph.d.hpp new file mode 100644 index 00000000000..5ff85277602 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/BidiParagraph.d.hpp @@ -0,0 +1,56 @@ +#ifndef icu4x_BidiParagraph_D_HPP +#define icu4x_BidiParagraph_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +class BidiDirection; +} + + +namespace icu4x { +namespace capi { + struct BidiParagraph; +} // namespace capi +} // namespace + +namespace icu4x { +class BidiParagraph { +public: + + inline bool set_paragraph_in_text(size_t n); + + inline icu4x::BidiDirection direction() const; + + inline size_t size() const; + + inline size_t range_start() const; + + inline size_t range_end() const; + + inline std::optional<std::string> reorder_line(size_t range_start, size_t range_end) const; + + inline uint8_t level_at(size_t pos) const; + + inline const icu4x::capi::BidiParagraph* AsFFI() const; + inline icu4x::capi::BidiParagraph* AsFFI(); + inline static const icu4x::BidiParagraph* FromFFI(const icu4x::capi::BidiParagraph* ptr); + inline static icu4x::BidiParagraph* FromFFI(icu4x::capi::BidiParagraph* ptr); + inline static void operator delete(void* ptr); +private: + BidiParagraph() = delete; + BidiParagraph(const icu4x::BidiParagraph&) = delete; + BidiParagraph(icu4x::BidiParagraph&&) noexcept = delete; + BidiParagraph operator=(const icu4x::BidiParagraph&) = delete; + BidiParagraph operator=(icu4x::BidiParagraph&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_BidiParagraph_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/BidiParagraph.hpp b/ffi/capi/bindings/cpp/icu4x/BidiParagraph.hpp new file mode 100644 index 00000000000..78cf2f018d0 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/BidiParagraph.hpp @@ -0,0 +1,105 @@ +#ifndef icu4x_BidiParagraph_HPP +#define icu4x_BidiParagraph_HPP + +#include "BidiParagraph.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "BidiDirection.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + bool icu4x_BidiParagraph_set_paragraph_in_text_mv1(icu4x::capi::BidiParagraph* self, size_t n); + + icu4x::capi::BidiDirection icu4x_BidiParagraph_direction_mv1(const icu4x::capi::BidiParagraph* self); + + size_t icu4x_BidiParagraph_size_mv1(const icu4x::capi::BidiParagraph* self); + + size_t icu4x_BidiParagraph_range_start_mv1(const icu4x::capi::BidiParagraph* self); + + size_t icu4x_BidiParagraph_range_end_mv1(const icu4x::capi::BidiParagraph* self); + + typedef struct icu4x_BidiParagraph_reorder_line_mv1_result { bool is_ok;} icu4x_BidiParagraph_reorder_line_mv1_result; + icu4x_BidiParagraph_reorder_line_mv1_result icu4x_BidiParagraph_reorder_line_mv1(const icu4x::capi::BidiParagraph* self, size_t range_start, size_t range_end, diplomat::capi::DiplomatWrite* write); + + uint8_t icu4x_BidiParagraph_level_at_mv1(const icu4x::capi::BidiParagraph* self, size_t pos); + + + void icu4x_BidiParagraph_destroy_mv1(BidiParagraph* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline bool icu4x::BidiParagraph::set_paragraph_in_text(size_t n) { + auto result = icu4x::capi::icu4x_BidiParagraph_set_paragraph_in_text_mv1(this->AsFFI(), + n); + return result; +} + +inline icu4x::BidiDirection icu4x::BidiParagraph::direction() const { + auto result = icu4x::capi::icu4x_BidiParagraph_direction_mv1(this->AsFFI()); + return icu4x::BidiDirection::FromFFI(result); +} + +inline size_t icu4x::BidiParagraph::size() const { + auto result = icu4x::capi::icu4x_BidiParagraph_size_mv1(this->AsFFI()); + return result; +} + +inline size_t icu4x::BidiParagraph::range_start() const { + auto result = icu4x::capi::icu4x_BidiParagraph_range_start_mv1(this->AsFFI()); + return result; +} + +inline size_t icu4x::BidiParagraph::range_end() const { + auto result = icu4x::capi::icu4x_BidiParagraph_range_end_mv1(this->AsFFI()); + return result; +} + +inline std::optional<std::string> icu4x::BidiParagraph::reorder_line(size_t range_start, size_t range_end) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_BidiParagraph_reorder_line_mv1(this->AsFFI(), + range_start, + range_end, + &write); + return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; +} + +inline uint8_t icu4x::BidiParagraph::level_at(size_t pos) const { + auto result = icu4x::capi::icu4x_BidiParagraph_level_at_mv1(this->AsFFI(), + pos); + return result; +} + +inline const icu4x::capi::BidiParagraph* icu4x::BidiParagraph::AsFFI() const { + return reinterpret_cast<const icu4x::capi::BidiParagraph*>(this); +} + +inline icu4x::capi::BidiParagraph* icu4x::BidiParagraph::AsFFI() { + return reinterpret_cast<icu4x::capi::BidiParagraph*>(this); +} + +inline const icu4x::BidiParagraph* icu4x::BidiParagraph::FromFFI(const icu4x::capi::BidiParagraph* ptr) { + return reinterpret_cast<const icu4x::BidiParagraph*>(ptr); +} + +inline icu4x::BidiParagraph* icu4x::BidiParagraph::FromFFI(icu4x::capi::BidiParagraph* ptr) { + return reinterpret_cast<icu4x::BidiParagraph*>(ptr); +} + +inline void icu4x::BidiParagraph::operator delete(void* ptr) { + icu4x::capi::icu4x_BidiParagraph_destroy_mv1(reinterpret_cast<icu4x::capi::BidiParagraph*>(ptr)); +} + + +#endif // icu4x_BidiParagraph_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Calendar.d.hpp b/ffi/capi/bindings/cpp/icu4x/Calendar.d.hpp new file mode 100644 index 00000000000..75e6a75b08b --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Calendar.d.hpp @@ -0,0 +1,55 @@ +#ifndef icu4x_Calendar_D_HPP +#define icu4x_Calendar_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Calendar; } +class Calendar; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +class AnyCalendarKind; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct Calendar; +} // namespace capi +} // namespace + +namespace icu4x { +class Calendar { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_locale(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_kind(const icu4x::DataProvider& provider, icu4x::AnyCalendarKind kind); + + inline icu4x::AnyCalendarKind kind() const; + + inline const icu4x::capi::Calendar* AsFFI() const; + inline icu4x::capi::Calendar* AsFFI(); + inline static const icu4x::Calendar* FromFFI(const icu4x::capi::Calendar* ptr); + inline static icu4x::Calendar* FromFFI(icu4x::capi::Calendar* ptr); + inline static void operator delete(void* ptr); +private: + Calendar() = delete; + Calendar(const icu4x::Calendar&) = delete; + Calendar(icu4x::Calendar&&) noexcept = delete; + Calendar operator=(const icu4x::Calendar&) = delete; + Calendar operator=(icu4x::Calendar&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_Calendar_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Calendar.hpp b/ffi/capi/bindings/cpp/icu4x/Calendar.hpp new file mode 100644 index 00000000000..c249c733b3c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Calendar.hpp @@ -0,0 +1,76 @@ +#ifndef icu4x_Calendar_HPP +#define icu4x_Calendar_HPP + +#include "Calendar.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "AnyCalendarKind.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_Calendar_create_for_locale_mv1_result {union {icu4x::capi::Calendar* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_locale_mv1_result; + icu4x_Calendar_create_for_locale_mv1_result icu4x_Calendar_create_for_locale_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_Calendar_create_for_kind_mv1_result {union {icu4x::capi::Calendar* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Calendar_create_for_kind_mv1_result; + icu4x_Calendar_create_for_kind_mv1_result icu4x_Calendar_create_for_kind_mv1(const icu4x::capi::DataProvider* provider, icu4x::capi::AnyCalendarKind kind); + + icu4x::capi::AnyCalendarKind icu4x_Calendar_kind_mv1(const icu4x::capi::Calendar* self); + + + void icu4x_Calendar_destroy_mv1(Calendar* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> icu4x::Calendar::create_for_locale(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_Calendar_create_for_locale_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Calendar>>(std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> icu4x::Calendar::create_for_kind(const icu4x::DataProvider& provider, icu4x::AnyCalendarKind kind) { + auto result = icu4x::capi::icu4x_Calendar_create_for_kind_mv1(provider.AsFFI(), + kind.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Calendar>>(std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline icu4x::AnyCalendarKind icu4x::Calendar::kind() const { + auto result = icu4x::capi::icu4x_Calendar_kind_mv1(this->AsFFI()); + return icu4x::AnyCalendarKind::FromFFI(result); +} + +inline const icu4x::capi::Calendar* icu4x::Calendar::AsFFI() const { + return reinterpret_cast<const icu4x::capi::Calendar*>(this); +} + +inline icu4x::capi::Calendar* icu4x::Calendar::AsFFI() { + return reinterpret_cast<icu4x::capi::Calendar*>(this); +} + +inline const icu4x::Calendar* icu4x::Calendar::FromFFI(const icu4x::capi::Calendar* ptr) { + return reinterpret_cast<const icu4x::Calendar*>(ptr); +} + +inline icu4x::Calendar* icu4x::Calendar::FromFFI(icu4x::capi::Calendar* ptr) { + return reinterpret_cast<icu4x::Calendar*>(ptr); +} + +inline void icu4x::Calendar::operator delete(void* ptr) { + icu4x::capi::icu4x_Calendar_destroy_mv1(reinterpret_cast<icu4x::capi::Calendar*>(ptr)); +} + + +#endif // icu4x_Calendar_HPP diff --git a/ffi/capi/bindings/cpp/CalendarError.d.hpp b/ffi/capi/bindings/cpp/icu4x/CalendarError.d.hpp similarity index 70% rename from ffi/capi/bindings/cpp/CalendarError.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CalendarError.d.hpp index 22394482149..0818c2903b2 100644 --- a/ffi/capi/bindings/cpp/CalendarError.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CalendarError.d.hpp @@ -1,5 +1,5 @@ -#ifndef CalendarError_D_HPP -#define CalendarError_D_HPP +#ifndef icu4x_CalendarError_D_HPP +#define icu4x_CalendarError_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CalendarError { CalendarError_Unknown = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CalendarError { public: enum Value { @@ -37,11 +38,11 @@ class CalendarError { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CalendarError AsFFI() const; - inline static CalendarError FromFFI(diplomat::capi::CalendarError c_enum); + inline icu4x::capi::CalendarError AsFFI() const; + inline static icu4x::CalendarError FromFFI(icu4x::capi::CalendarError c_enum); private: Value value; }; - -#endif // CalendarError_D_HPP +} // namespace +#endif // icu4x_CalendarError_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CalendarError.hpp b/ffi/capi/bindings/cpp/icu4x/CalendarError.hpp new file mode 100644 index 00000000000..65510a2a581 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CalendarError.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_CalendarError_HPP +#define icu4x_CalendarError_HPP + +#include "CalendarError.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CalendarError icu4x::CalendarError::AsFFI() const { + return static_cast<icu4x::capi::CalendarError>(value); +} + +inline icu4x::CalendarError icu4x::CalendarError::FromFFI(icu4x::capi::CalendarError c_enum) { + switch (c_enum) { + case icu4x::capi::CalendarError_Unknown: + case icu4x::capi::CalendarError_OutOfRange: + case icu4x::capi::CalendarError_UnknownEra: + case icu4x::capi::CalendarError_UnknownMonthCode: + return static_cast<icu4x::CalendarError::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CalendarError_HPP diff --git a/ffi/capi/bindings/cpp/CalendarParseError.d.hpp b/ffi/capi/bindings/cpp/icu4x/CalendarParseError.d.hpp similarity index 71% rename from ffi/capi/bindings/cpp/CalendarParseError.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CalendarParseError.d.hpp index e09b4c50d6b..b2e60c471ff 100644 --- a/ffi/capi/bindings/cpp/CalendarParseError.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CalendarParseError.d.hpp @@ -1,5 +1,5 @@ -#ifndef CalendarParseError_D_HPP -#define CalendarParseError_D_HPP +#ifndef icu4x_CalendarParseError_D_HPP +#define icu4x_CalendarParseError_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CalendarParseError { CalendarParseError_Unknown = 0, @@ -22,6 +22,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CalendarParseError { public: enum Value { @@ -39,11 +40,11 @@ class CalendarParseError { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CalendarParseError AsFFI() const; - inline static CalendarParseError FromFFI(diplomat::capi::CalendarParseError c_enum); + inline icu4x::capi::CalendarParseError AsFFI() const; + inline static icu4x::CalendarParseError FromFFI(icu4x::capi::CalendarParseError c_enum); private: Value value; }; - -#endif // CalendarParseError_D_HPP +} // namespace +#endif // icu4x_CalendarParseError_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CalendarParseError.hpp b/ffi/capi/bindings/cpp/icu4x/CalendarParseError.hpp new file mode 100644 index 00000000000..fa89386bfb3 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CalendarParseError.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_CalendarParseError_HPP +#define icu4x_CalendarParseError_HPP + +#include "CalendarParseError.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CalendarParseError icu4x::CalendarParseError::AsFFI() const { + return static_cast<icu4x::capi::CalendarParseError>(value); +} + +inline icu4x::CalendarParseError icu4x::CalendarParseError::FromFFI(icu4x::capi::CalendarParseError c_enum) { + switch (c_enum) { + case icu4x::capi::CalendarParseError_Unknown: + case icu4x::capi::CalendarParseError_InvalidSyntax: + case icu4x::capi::CalendarParseError_OutOfRange: + case icu4x::capi::CalendarParseError_MissingFields: + case icu4x::capi::CalendarParseError_UnknownCalendar: + return static_cast<icu4x::CalendarParseError::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CalendarParseError_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.d.hpp b/ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.d.hpp new file mode 100644 index 00000000000..86240acf18d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.d.hpp @@ -0,0 +1,50 @@ +#ifndef icu4x_CanonicalCombiningClassMap_D_HPP +#define icu4x_CanonicalCombiningClassMap_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CanonicalCombiningClassMap; } +class CanonicalCombiningClassMap; +namespace capi { struct DataProvider; } +class DataProvider; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct CanonicalCombiningClassMap; +} // namespace capi +} // namespace + +namespace icu4x { +class CanonicalCombiningClassMap { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline uint8_t get(char32_t ch) const; + + inline const icu4x::capi::CanonicalCombiningClassMap* AsFFI() const; + inline icu4x::capi::CanonicalCombiningClassMap* AsFFI(); + inline static const icu4x::CanonicalCombiningClassMap* FromFFI(const icu4x::capi::CanonicalCombiningClassMap* ptr); + inline static icu4x::CanonicalCombiningClassMap* FromFFI(icu4x::capi::CanonicalCombiningClassMap* ptr); + inline static void operator delete(void* ptr); +private: + CanonicalCombiningClassMap() = delete; + CanonicalCombiningClassMap(const icu4x::CanonicalCombiningClassMap&) = delete; + CanonicalCombiningClassMap(icu4x::CanonicalCombiningClassMap&&) noexcept = delete; + CanonicalCombiningClassMap operator=(const icu4x::CanonicalCombiningClassMap&) = delete; + CanonicalCombiningClassMap operator=(icu4x::CanonicalCombiningClassMap&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CanonicalCombiningClassMap_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.hpp b/ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.hpp new file mode 100644 index 00000000000..168e813fc27 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CanonicalCombiningClassMap.hpp @@ -0,0 +1,65 @@ +#ifndef icu4x_CanonicalCombiningClassMap_HPP +#define icu4x_CanonicalCombiningClassMap_HPP + +#include "CanonicalCombiningClassMap.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_CanonicalCombiningClassMap_create_mv1_result {union {icu4x::capi::CanonicalCombiningClassMap* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CanonicalCombiningClassMap_create_mv1_result; + icu4x_CanonicalCombiningClassMap_create_mv1_result icu4x_CanonicalCombiningClassMap_create_mv1(const icu4x::capi::DataProvider* provider); + + uint8_t icu4x_CanonicalCombiningClassMap_get_mv1(const icu4x::capi::CanonicalCombiningClassMap* self, char32_t ch); + + + void icu4x_CanonicalCombiningClassMap_destroy_mv1(CanonicalCombiningClassMap* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError> icu4x::CanonicalCombiningClassMap::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CanonicalCombiningClassMap_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CanonicalCombiningClassMap>>(std::unique_ptr<icu4x::CanonicalCombiningClassMap>(icu4x::CanonicalCombiningClassMap::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CanonicalCombiningClassMap>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline uint8_t icu4x::CanonicalCombiningClassMap::get(char32_t ch) const { + auto result = icu4x::capi::icu4x_CanonicalCombiningClassMap_get_mv1(this->AsFFI(), + ch); + return result; +} + +inline const icu4x::capi::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CanonicalCombiningClassMap*>(this); +} + +inline icu4x::capi::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::AsFFI() { + return reinterpret_cast<icu4x::capi::CanonicalCombiningClassMap*>(this); +} + +inline const icu4x::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::FromFFI(const icu4x::capi::CanonicalCombiningClassMap* ptr) { + return reinterpret_cast<const icu4x::CanonicalCombiningClassMap*>(ptr); +} + +inline icu4x::CanonicalCombiningClassMap* icu4x::CanonicalCombiningClassMap::FromFFI(icu4x::capi::CanonicalCombiningClassMap* ptr) { + return reinterpret_cast<icu4x::CanonicalCombiningClassMap*>(ptr); +} + +inline void icu4x::CanonicalCombiningClassMap::operator delete(void* ptr) { + icu4x::capi::icu4x_CanonicalCombiningClassMap_destroy_mv1(reinterpret_cast<icu4x::capi::CanonicalCombiningClassMap*>(ptr)); +} + + +#endif // icu4x_CanonicalCombiningClassMap_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CanonicalComposition.d.hpp b/ffi/capi/bindings/cpp/icu4x/CanonicalComposition.d.hpp new file mode 100644 index 00000000000..bcd68180a19 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CanonicalComposition.d.hpp @@ -0,0 +1,50 @@ +#ifndef icu4x_CanonicalComposition_D_HPP +#define icu4x_CanonicalComposition_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CanonicalComposition; } +class CanonicalComposition; +namespace capi { struct DataProvider; } +class DataProvider; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct CanonicalComposition; +} // namespace capi +} // namespace + +namespace icu4x { +class CanonicalComposition { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline char32_t compose(char32_t starter, char32_t second) const; + + inline const icu4x::capi::CanonicalComposition* AsFFI() const; + inline icu4x::capi::CanonicalComposition* AsFFI(); + inline static const icu4x::CanonicalComposition* FromFFI(const icu4x::capi::CanonicalComposition* ptr); + inline static icu4x::CanonicalComposition* FromFFI(icu4x::capi::CanonicalComposition* ptr); + inline static void operator delete(void* ptr); +private: + CanonicalComposition() = delete; + CanonicalComposition(const icu4x::CanonicalComposition&) = delete; + CanonicalComposition(icu4x::CanonicalComposition&&) noexcept = delete; + CanonicalComposition operator=(const icu4x::CanonicalComposition&) = delete; + CanonicalComposition operator=(icu4x::CanonicalComposition&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CanonicalComposition_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CanonicalComposition.hpp b/ffi/capi/bindings/cpp/icu4x/CanonicalComposition.hpp new file mode 100644 index 00000000000..b51c2d0b171 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CanonicalComposition.hpp @@ -0,0 +1,66 @@ +#ifndef icu4x_CanonicalComposition_HPP +#define icu4x_CanonicalComposition_HPP + +#include "CanonicalComposition.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_CanonicalComposition_create_mv1_result {union {icu4x::capi::CanonicalComposition* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CanonicalComposition_create_mv1_result; + icu4x_CanonicalComposition_create_mv1_result icu4x_CanonicalComposition_create_mv1(const icu4x::capi::DataProvider* provider); + + char32_t icu4x_CanonicalComposition_compose_mv1(const icu4x::capi::CanonicalComposition* self, char32_t starter, char32_t second); + + + void icu4x_CanonicalComposition_destroy_mv1(CanonicalComposition* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError> icu4x::CanonicalComposition::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CanonicalComposition_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CanonicalComposition>>(std::unique_ptr<icu4x::CanonicalComposition>(icu4x::CanonicalComposition::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline char32_t icu4x::CanonicalComposition::compose(char32_t starter, char32_t second) const { + auto result = icu4x::capi::icu4x_CanonicalComposition_compose_mv1(this->AsFFI(), + starter, + second); + return result; +} + +inline const icu4x::capi::CanonicalComposition* icu4x::CanonicalComposition::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CanonicalComposition*>(this); +} + +inline icu4x::capi::CanonicalComposition* icu4x::CanonicalComposition::AsFFI() { + return reinterpret_cast<icu4x::capi::CanonicalComposition*>(this); +} + +inline const icu4x::CanonicalComposition* icu4x::CanonicalComposition::FromFFI(const icu4x::capi::CanonicalComposition* ptr) { + return reinterpret_cast<const icu4x::CanonicalComposition*>(ptr); +} + +inline icu4x::CanonicalComposition* icu4x::CanonicalComposition::FromFFI(icu4x::capi::CanonicalComposition* ptr) { + return reinterpret_cast<icu4x::CanonicalComposition*>(ptr); +} + +inline void icu4x::CanonicalComposition::operator delete(void* ptr) { + icu4x::capi::icu4x_CanonicalComposition_destroy_mv1(reinterpret_cast<icu4x::capi::CanonicalComposition*>(ptr)); +} + + +#endif // icu4x_CanonicalComposition_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.d.hpp b/ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.d.hpp new file mode 100644 index 00000000000..6472966147d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.d.hpp @@ -0,0 +1,51 @@ +#ifndef icu4x_CanonicalDecomposition_D_HPP +#define icu4x_CanonicalDecomposition_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CanonicalDecomposition; } +class CanonicalDecomposition; +namespace capi { struct DataProvider; } +class DataProvider; +struct Decomposed; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct CanonicalDecomposition; +} // namespace capi +} // namespace + +namespace icu4x { +class CanonicalDecomposition { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline icu4x::Decomposed decompose(char32_t c) const; + + inline const icu4x::capi::CanonicalDecomposition* AsFFI() const; + inline icu4x::capi::CanonicalDecomposition* AsFFI(); + inline static const icu4x::CanonicalDecomposition* FromFFI(const icu4x::capi::CanonicalDecomposition* ptr); + inline static icu4x::CanonicalDecomposition* FromFFI(icu4x::capi::CanonicalDecomposition* ptr); + inline static void operator delete(void* ptr); +private: + CanonicalDecomposition() = delete; + CanonicalDecomposition(const icu4x::CanonicalDecomposition&) = delete; + CanonicalDecomposition(icu4x::CanonicalDecomposition&&) noexcept = delete; + CanonicalDecomposition operator=(const icu4x::CanonicalDecomposition&) = delete; + CanonicalDecomposition operator=(icu4x::CanonicalDecomposition&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CanonicalDecomposition_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.hpp b/ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.hpp new file mode 100644 index 00000000000..a1af16b3d9a --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CanonicalDecomposition.hpp @@ -0,0 +1,66 @@ +#ifndef icu4x_CanonicalDecomposition_HPP +#define icu4x_CanonicalDecomposition_HPP + +#include "CanonicalDecomposition.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Decomposed.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_CanonicalDecomposition_create_mv1_result {union {icu4x::capi::CanonicalDecomposition* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CanonicalDecomposition_create_mv1_result; + icu4x_CanonicalDecomposition_create_mv1_result icu4x_CanonicalDecomposition_create_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::Decomposed icu4x_CanonicalDecomposition_decompose_mv1(const icu4x::capi::CanonicalDecomposition* self, char32_t c); + + + void icu4x_CanonicalDecomposition_destroy_mv1(CanonicalDecomposition* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError> icu4x::CanonicalDecomposition::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CanonicalDecomposition_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CanonicalDecomposition>>(std::unique_ptr<icu4x::CanonicalDecomposition>(icu4x::CanonicalDecomposition::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CanonicalDecomposition>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline icu4x::Decomposed icu4x::CanonicalDecomposition::decompose(char32_t c) const { + auto result = icu4x::capi::icu4x_CanonicalDecomposition_decompose_mv1(this->AsFFI(), + c); + return icu4x::Decomposed::FromFFI(result); +} + +inline const icu4x::capi::CanonicalDecomposition* icu4x::CanonicalDecomposition::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CanonicalDecomposition*>(this); +} + +inline icu4x::capi::CanonicalDecomposition* icu4x::CanonicalDecomposition::AsFFI() { + return reinterpret_cast<icu4x::capi::CanonicalDecomposition*>(this); +} + +inline const icu4x::CanonicalDecomposition* icu4x::CanonicalDecomposition::FromFFI(const icu4x::capi::CanonicalDecomposition* ptr) { + return reinterpret_cast<const icu4x::CanonicalDecomposition*>(ptr); +} + +inline icu4x::CanonicalDecomposition* icu4x::CanonicalDecomposition::FromFFI(icu4x::capi::CanonicalDecomposition* ptr) { + return reinterpret_cast<icu4x::CanonicalDecomposition*>(ptr); +} + +inline void icu4x::CanonicalDecomposition::operator delete(void* ptr) { + icu4x::capi::icu4x_CanonicalDecomposition_destroy_mv1(reinterpret_cast<icu4x::capi::CanonicalDecomposition*>(ptr)); +} + + +#endif // icu4x_CanonicalDecomposition_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CaseMapCloser.d.hpp b/ffi/capi/bindings/cpp/icu4x/CaseMapCloser.d.hpp new file mode 100644 index 00000000000..67471bd5c10 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CaseMapCloser.d.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_CaseMapCloser_D_HPP +#define icu4x_CaseMapCloser_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CaseMapCloser; } +class CaseMapCloser; +namespace capi { struct CodePointSetBuilder; } +class CodePointSetBuilder; +namespace capi { struct DataProvider; } +class DataProvider; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct CaseMapCloser; +} // namespace capi +} // namespace + +namespace icu4x { +class CaseMapCloser { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline void add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const; + + inline bool add_string_case_closure_to(std::string_view s, icu4x::CodePointSetBuilder& builder) const; + + inline const icu4x::capi::CaseMapCloser* AsFFI() const; + inline icu4x::capi::CaseMapCloser* AsFFI(); + inline static const icu4x::CaseMapCloser* FromFFI(const icu4x::capi::CaseMapCloser* ptr); + inline static icu4x::CaseMapCloser* FromFFI(icu4x::capi::CaseMapCloser* ptr); + inline static void operator delete(void* ptr); +private: + CaseMapCloser() = delete; + CaseMapCloser(const icu4x::CaseMapCloser&) = delete; + CaseMapCloser(icu4x::CaseMapCloser&&) noexcept = delete; + CaseMapCloser operator=(const icu4x::CaseMapCloser&) = delete; + CaseMapCloser operator=(icu4x::CaseMapCloser&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CaseMapCloser_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CaseMapCloser.hpp b/ffi/capi/bindings/cpp/icu4x/CaseMapCloser.hpp new file mode 100644 index 00000000000..0b7c443830b --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CaseMapCloser.hpp @@ -0,0 +1,76 @@ +#ifndef icu4x_CaseMapCloser_HPP +#define icu4x_CaseMapCloser_HPP + +#include "CaseMapCloser.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointSetBuilder.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_CaseMapCloser_create_mv1_result {union {icu4x::capi::CaseMapCloser* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CaseMapCloser_create_mv1_result; + icu4x_CaseMapCloser_create_mv1_result icu4x_CaseMapCloser_create_mv1(const icu4x::capi::DataProvider* provider); + + void icu4x_CaseMapCloser_add_case_closure_to_mv1(const icu4x::capi::CaseMapCloser* self, char32_t c, icu4x::capi::CodePointSetBuilder* builder); + + bool icu4x_CaseMapCloser_add_string_case_closure_to_mv1(const icu4x::capi::CaseMapCloser* self, const char* s_data, size_t s_len, icu4x::capi::CodePointSetBuilder* builder); + + + void icu4x_CaseMapCloser_destroy_mv1(CaseMapCloser* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError> icu4x::CaseMapCloser::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CaseMapCloser_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CaseMapCloser>>(std::unique_ptr<icu4x::CaseMapCloser>(icu4x::CaseMapCloser::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CaseMapCloser>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline void icu4x::CaseMapCloser::add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const { + icu4x::capi::icu4x_CaseMapCloser_add_case_closure_to_mv1(this->AsFFI(), + c, + builder.AsFFI()); +} + +inline bool icu4x::CaseMapCloser::add_string_case_closure_to(std::string_view s, icu4x::CodePointSetBuilder& builder) const { + auto result = icu4x::capi::icu4x_CaseMapCloser_add_string_case_closure_to_mv1(this->AsFFI(), + s.data(), + s.size(), + builder.AsFFI()); + return result; +} + +inline const icu4x::capi::CaseMapCloser* icu4x::CaseMapCloser::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CaseMapCloser*>(this); +} + +inline icu4x::capi::CaseMapCloser* icu4x::CaseMapCloser::AsFFI() { + return reinterpret_cast<icu4x::capi::CaseMapCloser*>(this); +} + +inline const icu4x::CaseMapCloser* icu4x::CaseMapCloser::FromFFI(const icu4x::capi::CaseMapCloser* ptr) { + return reinterpret_cast<const icu4x::CaseMapCloser*>(ptr); +} + +inline icu4x::CaseMapCloser* icu4x::CaseMapCloser::FromFFI(icu4x::capi::CaseMapCloser* ptr) { + return reinterpret_cast<icu4x::CaseMapCloser*>(ptr); +} + +inline void icu4x::CaseMapCloser::operator delete(void* ptr) { + icu4x::capi::icu4x_CaseMapCloser_destroy_mv1(reinterpret_cast<icu4x::capi::CaseMapCloser*>(ptr)); +} + + +#endif // icu4x_CaseMapCloser_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CaseMapper.d.hpp b/ffi/capi/bindings/cpp/icu4x/CaseMapper.d.hpp new file mode 100644 index 00000000000..2992b011179 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CaseMapper.d.hpp @@ -0,0 +1,75 @@ +#ifndef icu4x_CaseMapper_D_HPP +#define icu4x_CaseMapper_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CaseMapper; } +class CaseMapper; +namespace capi { struct CodePointSetBuilder; } +class CodePointSetBuilder; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +struct TitlecaseOptionsV1; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct CaseMapper; +} // namespace capi +} // namespace + +namespace icu4x { +class CaseMapper { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline diplomat::result<std::string, diplomat::Utf8Error> lowercase(std::string_view s, const icu4x::Locale& locale) const; + + inline diplomat::result<std::string, diplomat::Utf8Error> uppercase(std::string_view s, const icu4x::Locale& locale) const; + + inline diplomat::result<std::string, diplomat::Utf8Error> titlecase_segment_with_only_case_data_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const; + + inline diplomat::result<std::string, diplomat::Utf8Error> fold(std::string_view s) const; + + inline diplomat::result<std::string, diplomat::Utf8Error> fold_turkic(std::string_view s) const; + + inline void add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const; + + inline char32_t simple_lowercase(char32_t ch) const; + + inline char32_t simple_uppercase(char32_t ch) const; + + inline char32_t simple_titlecase(char32_t ch) const; + + inline char32_t simple_fold(char32_t ch) const; + + inline char32_t simple_fold_turkic(char32_t ch) const; + + inline const icu4x::capi::CaseMapper* AsFFI() const; + inline icu4x::capi::CaseMapper* AsFFI(); + inline static const icu4x::CaseMapper* FromFFI(const icu4x::capi::CaseMapper* ptr); + inline static icu4x::CaseMapper* FromFFI(icu4x::capi::CaseMapper* ptr); + inline static void operator delete(void* ptr); +private: + CaseMapper() = delete; + CaseMapper(const icu4x::CaseMapper&) = delete; + CaseMapper(icu4x::CaseMapper&&) noexcept = delete; + CaseMapper operator=(const icu4x::CaseMapper&) = delete; + CaseMapper operator=(icu4x::CaseMapper&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CaseMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CaseMapper.hpp b/ffi/capi/bindings/cpp/icu4x/CaseMapper.hpp new file mode 100644 index 00000000000..2d0a74edc5e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CaseMapper.hpp @@ -0,0 +1,187 @@ +#ifndef icu4x_CaseMapper_HPP +#define icu4x_CaseMapper_HPP + +#include "CaseMapper.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointSetBuilder.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" +#include "TitlecaseOptionsV1.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_CaseMapper_create_mv1_result {union {icu4x::capi::CaseMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CaseMapper_create_mv1_result; + icu4x_CaseMapper_create_mv1_result icu4x_CaseMapper_create_mv1(const icu4x::capi::DataProvider* provider); + + void icu4x_CaseMapper_lowercase_mv1(const icu4x::capi::CaseMapper* self, const char* s_data, size_t s_len, const icu4x::capi::Locale* locale, diplomat::capi::DiplomatWrite* write); + + void icu4x_CaseMapper_uppercase_mv1(const icu4x::capi::CaseMapper* self, const char* s_data, size_t s_len, const icu4x::capi::Locale* locale, diplomat::capi::DiplomatWrite* write); + + void icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(const icu4x::capi::CaseMapper* self, const char* s_data, size_t s_len, const icu4x::capi::Locale* locale, icu4x::capi::TitlecaseOptionsV1 options, diplomat::capi::DiplomatWrite* write); + + void icu4x_CaseMapper_fold_mv1(const icu4x::capi::CaseMapper* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); + + void icu4x_CaseMapper_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); + + void icu4x_CaseMapper_add_case_closure_to_mv1(const icu4x::capi::CaseMapper* self, char32_t c, icu4x::capi::CodePointSetBuilder* builder); + + char32_t icu4x_CaseMapper_simple_lowercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch); + + char32_t icu4x_CaseMapper_simple_uppercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch); + + char32_t icu4x_CaseMapper_simple_titlecase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch); + + char32_t icu4x_CaseMapper_simple_fold_mv1(const icu4x::capi::CaseMapper* self, char32_t ch); + + char32_t icu4x_CaseMapper_simple_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, char32_t ch); + + + void icu4x_CaseMapper_destroy_mv1(CaseMapper* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError> icu4x::CaseMapper::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CaseMapper_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CaseMapper>>(std::unique_ptr<icu4x::CaseMapper>(icu4x::CaseMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CaseMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::lowercase(std::string_view s, const icu4x::Locale& locale) const { + if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_CaseMapper_lowercase_mv1(this->AsFFI(), + s.data(), + s.size(), + locale.AsFFI(), + &write); + return diplomat::Ok<std::string>(std::move(output)); +} + +inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::uppercase(std::string_view s, const icu4x::Locale& locale) const { + if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_CaseMapper_uppercase_mv1(this->AsFFI(), + s.data(), + s.size(), + locale.AsFFI(), + &write); + return diplomat::Ok<std::string>(std::move(output)); +} + +inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::titlecase_segment_with_only_case_data_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const { + if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this->AsFFI(), + s.data(), + s.size(), + locale.AsFFI(), + options.AsFFI(), + &write); + return diplomat::Ok<std::string>(std::move(output)); +} + +inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::fold(std::string_view s) const { + if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_CaseMapper_fold_mv1(this->AsFFI(), + s.data(), + s.size(), + &write); + return diplomat::Ok<std::string>(std::move(output)); +} + +inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::CaseMapper::fold_turkic(std::string_view s) const { + if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_CaseMapper_fold_turkic_mv1(this->AsFFI(), + s.data(), + s.size(), + &write); + return diplomat::Ok<std::string>(std::move(output)); +} + +inline void icu4x::CaseMapper::add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder& builder) const { + icu4x::capi::icu4x_CaseMapper_add_case_closure_to_mv1(this->AsFFI(), + c, + builder.AsFFI()); +} + +inline char32_t icu4x::CaseMapper::simple_lowercase(char32_t ch) const { + auto result = icu4x::capi::icu4x_CaseMapper_simple_lowercase_mv1(this->AsFFI(), + ch); + return result; +} + +inline char32_t icu4x::CaseMapper::simple_uppercase(char32_t ch) const { + auto result = icu4x::capi::icu4x_CaseMapper_simple_uppercase_mv1(this->AsFFI(), + ch); + return result; +} + +inline char32_t icu4x::CaseMapper::simple_titlecase(char32_t ch) const { + auto result = icu4x::capi::icu4x_CaseMapper_simple_titlecase_mv1(this->AsFFI(), + ch); + return result; +} + +inline char32_t icu4x::CaseMapper::simple_fold(char32_t ch) const { + auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_mv1(this->AsFFI(), + ch); + return result; +} + +inline char32_t icu4x::CaseMapper::simple_fold_turkic(char32_t ch) const { + auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_turkic_mv1(this->AsFFI(), + ch); + return result; +} + +inline const icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CaseMapper*>(this); +} + +inline icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() { + return reinterpret_cast<icu4x::capi::CaseMapper*>(this); +} + +inline const icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(const icu4x::capi::CaseMapper* ptr) { + return reinterpret_cast<const icu4x::CaseMapper*>(ptr); +} + +inline icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(icu4x::capi::CaseMapper* ptr) { + return reinterpret_cast<icu4x::CaseMapper*>(ptr); +} + +inline void icu4x::CaseMapper::operator delete(void* ptr) { + icu4x::capi::icu4x_CaseMapper_destroy_mv1(reinterpret_cast<icu4x::capi::CaseMapper*>(ptr)); +} + + +#endif // icu4x_CaseMapper_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointMapData16.d.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointMapData16.d.hpp new file mode 100644 index 00000000000..afb0b70918c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointMapData16.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_CodePointMapData16_D_HPP +#define icu4x_CodePointMapData16_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CodePointMapData16; } +class CodePointMapData16; +namespace capi { struct CodePointRangeIterator; } +class CodePointRangeIterator; +namespace capi { struct CodePointSetData; } +class CodePointSetData; +namespace capi { struct DataProvider; } +class DataProvider; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct CodePointMapData16; +} // namespace capi +} // namespace + +namespace icu4x { +class CodePointMapData16 { +public: + + inline uint16_t get(char32_t cp) const; + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value(uint16_t value) const; + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value_complemented(uint16_t value) const; + + inline std::unique_ptr<icu4x::CodePointSetData> get_set_for_value(uint16_t value) const; + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError> load_script(const icu4x::DataProvider& provider); + + inline const icu4x::capi::CodePointMapData16* AsFFI() const; + inline icu4x::capi::CodePointMapData16* AsFFI(); + inline static const icu4x::CodePointMapData16* FromFFI(const icu4x::capi::CodePointMapData16* ptr); + inline static icu4x::CodePointMapData16* FromFFI(icu4x::capi::CodePointMapData16* ptr); + inline static void operator delete(void* ptr); +private: + CodePointMapData16() = delete; + CodePointMapData16(const icu4x::CodePointMapData16&) = delete; + CodePointMapData16(icu4x::CodePointMapData16&&) noexcept = delete; + CodePointMapData16 operator=(const icu4x::CodePointMapData16&) = delete; + CodePointMapData16 operator=(icu4x::CodePointMapData16&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CodePointMapData16_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointMapData16.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointMapData16.hpp new file mode 100644 index 00000000000..6f2bfb7fbaf --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointMapData16.hpp @@ -0,0 +1,91 @@ +#ifndef icu4x_CodePointMapData16_HPP +#define icu4x_CodePointMapData16_HPP + +#include "CodePointMapData16.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointRangeIterator.hpp" +#include "CodePointSetData.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + uint16_t icu4x_CodePointMapData16_get_mv1(const icu4x::capi::CodePointMapData16* self, char32_t cp); + + icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_mv1(const icu4x::capi::CodePointMapData16* self, uint16_t value); + + icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(const icu4x::capi::CodePointMapData16* self, uint16_t value); + + icu4x::capi::CodePointSetData* icu4x_CodePointMapData16_get_set_for_value_mv1(const icu4x::capi::CodePointMapData16* self, uint16_t value); + + typedef struct icu4x_CodePointMapData16_load_script_mv1_result {union {icu4x::capi::CodePointMapData16* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData16_load_script_mv1_result; + icu4x_CodePointMapData16_load_script_mv1_result icu4x_CodePointMapData16_load_script_mv1(const icu4x::capi::DataProvider* provider); + + + void icu4x_CodePointMapData16_destroy_mv1(CodePointMapData16* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline uint16_t icu4x::CodePointMapData16::get(char32_t cp) const { + auto result = icu4x::capi::icu4x_CodePointMapData16_get_mv1(this->AsFFI(), + cp); + return result; +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData16::iter_ranges_for_value(uint16_t value) const { + auto result = icu4x::capi::icu4x_CodePointMapData16_iter_ranges_for_value_mv1(this->AsFFI(), + value); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData16::iter_ranges_for_value_complemented(uint16_t value) const { + auto result = icu4x::capi::icu4x_CodePointMapData16_iter_ranges_for_value_complemented_mv1(this->AsFFI(), + value); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointMapData16::get_set_for_value(uint16_t value) const { + auto result = icu4x::capi::icu4x_CodePointMapData16_get_set_for_value_mv1(this->AsFFI(), + value); + return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError> icu4x::CodePointMapData16::load_script(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData16_load_script_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData16>>(std::unique_ptr<icu4x::CodePointMapData16>(icu4x::CodePointMapData16::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData16>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline const icu4x::capi::CodePointMapData16* icu4x::CodePointMapData16::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CodePointMapData16*>(this); +} + +inline icu4x::capi::CodePointMapData16* icu4x::CodePointMapData16::AsFFI() { + return reinterpret_cast<icu4x::capi::CodePointMapData16*>(this); +} + +inline const icu4x::CodePointMapData16* icu4x::CodePointMapData16::FromFFI(const icu4x::capi::CodePointMapData16* ptr) { + return reinterpret_cast<const icu4x::CodePointMapData16*>(ptr); +} + +inline icu4x::CodePointMapData16* icu4x::CodePointMapData16::FromFFI(icu4x::capi::CodePointMapData16* ptr) { + return reinterpret_cast<icu4x::CodePointMapData16*>(ptr); +} + +inline void icu4x::CodePointMapData16::operator delete(void* ptr) { + icu4x::capi::icu4x_CodePointMapData16_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointMapData16*>(ptr)); +} + + +#endif // icu4x_CodePointMapData16_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointMapData8.d.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointMapData8.d.hpp new file mode 100644 index 00000000000..2c61573d905 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointMapData8.d.hpp @@ -0,0 +1,82 @@ +#ifndef icu4x_CodePointMapData8_D_HPP +#define icu4x_CodePointMapData8_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CodePointMapData8; } +class CodePointMapData8; +namespace capi { struct CodePointRangeIterator; } +class CodePointRangeIterator; +namespace capi { struct CodePointSetData; } +class CodePointSetData; +namespace capi { struct DataProvider; } +class DataProvider; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct CodePointMapData8; +} // namespace capi +} // namespace + +namespace icu4x { +class CodePointMapData8 { +public: + + inline uint8_t get(char32_t cp) const; + + inline static uint32_t general_category_to_mask(uint8_t gc); + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value(uint8_t value) const; + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value_complemented(uint8_t value) const; + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_mask(uint32_t mask) const; + + inline std::unique_ptr<icu4x::CodePointSetData> get_set_for_value(uint8_t value) const; + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_general_category(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_bidi_class(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_east_asian_width(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_hangul_syllable_type(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_indic_syllabic_category(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_line_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> try_grapheme_cluster_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_word_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_sentence_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> load_joining_type(const icu4x::DataProvider& provider); + + inline const icu4x::capi::CodePointMapData8* AsFFI() const; + inline icu4x::capi::CodePointMapData8* AsFFI(); + inline static const icu4x::CodePointMapData8* FromFFI(const icu4x::capi::CodePointMapData8* ptr); + inline static icu4x::CodePointMapData8* FromFFI(icu4x::capi::CodePointMapData8* ptr); + inline static void operator delete(void* ptr); +private: + CodePointMapData8() = delete; + CodePointMapData8(const icu4x::CodePointMapData8&) = delete; + CodePointMapData8(icu4x::CodePointMapData8&&) noexcept = delete; + CodePointMapData8 operator=(const icu4x::CodePointMapData8&) = delete; + CodePointMapData8 operator=(icu4x::CodePointMapData8&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CodePointMapData8_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointMapData8.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointMapData8.hpp new file mode 100644 index 00000000000..b45d05531b5 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointMapData8.hpp @@ -0,0 +1,178 @@ +#ifndef icu4x_CodePointMapData8_HPP +#define icu4x_CodePointMapData8_HPP + +#include "CodePointMapData8.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointRangeIterator.hpp" +#include "CodePointSetData.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + uint8_t icu4x_CodePointMapData8_get_mv1(const icu4x::capi::CodePointMapData8* self, char32_t cp); + + uint32_t icu4x_CodePointMapData8_general_category_to_mask_mv1(uint8_t gc); + + icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_mv1(const icu4x::capi::CodePointMapData8* self, uint8_t value); + + icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(const icu4x::capi::CodePointMapData8* self, uint8_t value); + + icu4x::capi::CodePointRangeIterator* icu4x_CodePointMapData8_iter_ranges_for_mask_mv1(const icu4x::capi::CodePointMapData8* self, uint32_t mask); + + icu4x::capi::CodePointSetData* icu4x_CodePointMapData8_get_set_for_value_mv1(const icu4x::capi::CodePointMapData8* self, uint8_t value); + + typedef struct icu4x_CodePointMapData8_load_general_category_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_general_category_mv1_result; + icu4x_CodePointMapData8_load_general_category_mv1_result icu4x_CodePointMapData8_load_general_category_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_bidi_class_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_bidi_class_mv1_result; + icu4x_CodePointMapData8_load_bidi_class_mv1_result icu4x_CodePointMapData8_load_bidi_class_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_east_asian_width_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_east_asian_width_mv1_result; + icu4x_CodePointMapData8_load_east_asian_width_mv1_result icu4x_CodePointMapData8_load_east_asian_width_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_hangul_syllable_type_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_hangul_syllable_type_mv1_result; + icu4x_CodePointMapData8_load_hangul_syllable_type_mv1_result icu4x_CodePointMapData8_load_hangul_syllable_type_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_indic_syllabic_category_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_indic_syllabic_category_mv1_result; + icu4x_CodePointMapData8_load_indic_syllabic_category_mv1_result icu4x_CodePointMapData8_load_indic_syllabic_category_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_line_break_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_line_break_mv1_result; + icu4x_CodePointMapData8_load_line_break_mv1_result icu4x_CodePointMapData8_load_line_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1_result; + icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1_result icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_word_break_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_word_break_mv1_result; + icu4x_CodePointMapData8_load_word_break_mv1_result icu4x_CodePointMapData8_load_word_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_sentence_break_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_sentence_break_mv1_result; + icu4x_CodePointMapData8_load_sentence_break_mv1_result icu4x_CodePointMapData8_load_sentence_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointMapData8_load_joining_type_mv1_result {union {icu4x::capi::CodePointMapData8* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointMapData8_load_joining_type_mv1_result; + icu4x_CodePointMapData8_load_joining_type_mv1_result icu4x_CodePointMapData8_load_joining_type_mv1(const icu4x::capi::DataProvider* provider); + + + void icu4x_CodePointMapData8_destroy_mv1(CodePointMapData8* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline uint8_t icu4x::CodePointMapData8::get(char32_t cp) const { + auto result = icu4x::capi::icu4x_CodePointMapData8_get_mv1(this->AsFFI(), + cp); + return result; +} + +inline uint32_t icu4x::CodePointMapData8::general_category_to_mask(uint8_t gc) { + auto result = icu4x::capi::icu4x_CodePointMapData8_general_category_to_mask_mv1(gc); + return result; +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData8::iter_ranges_for_value(uint8_t value) const { + auto result = icu4x::capi::icu4x_CodePointMapData8_iter_ranges_for_value_mv1(this->AsFFI(), + value); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData8::iter_ranges_for_value_complemented(uint8_t value) const { + auto result = icu4x::capi::icu4x_CodePointMapData8_iter_ranges_for_value_complemented_mv1(this->AsFFI(), + value); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointMapData8::iter_ranges_for_mask(uint32_t mask) const { + auto result = icu4x::capi::icu4x_CodePointMapData8_iter_ranges_for_mask_mv1(this->AsFFI(), + mask); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointMapData8::get_set_for_value(uint8_t value) const { + auto result = icu4x::capi::icu4x_CodePointMapData8_get_set_for_value_mv1(this->AsFFI(), + value); + return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_general_category(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_general_category_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_bidi_class(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_bidi_class_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_east_asian_width(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_east_asian_width_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_hangul_syllable_type(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_hangul_syllable_type_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_indic_syllabic_category(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_indic_syllabic_category_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_line_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_line_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::try_grapheme_cluster_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_try_grapheme_cluster_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_word_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_word_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_sentence_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_sentence_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> icu4x::CodePointMapData8::load_joining_type(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointMapData8_load_joining_type_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointMapData8>>(std::unique_ptr<icu4x::CodePointMapData8>(icu4x::CodePointMapData8::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline const icu4x::capi::CodePointMapData8* icu4x::CodePointMapData8::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CodePointMapData8*>(this); +} + +inline icu4x::capi::CodePointMapData8* icu4x::CodePointMapData8::AsFFI() { + return reinterpret_cast<icu4x::capi::CodePointMapData8*>(this); +} + +inline const icu4x::CodePointMapData8* icu4x::CodePointMapData8::FromFFI(const icu4x::capi::CodePointMapData8* ptr) { + return reinterpret_cast<const icu4x::CodePointMapData8*>(ptr); +} + +inline icu4x::CodePointMapData8* icu4x::CodePointMapData8::FromFFI(icu4x::capi::CodePointMapData8* ptr) { + return reinterpret_cast<icu4x::CodePointMapData8*>(ptr); +} + +inline void icu4x::CodePointMapData8::operator delete(void* ptr) { + icu4x::capi::icu4x_CodePointMapData8_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointMapData8*>(ptr)); +} + + +#endif // icu4x_CodePointMapData8_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.d.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.d.hpp new file mode 100644 index 00000000000..0d50179066e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.d.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_CodePointRangeIterator_D_HPP +#define icu4x_CodePointRangeIterator_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +struct CodePointRangeIteratorResult; +} + + +namespace icu4x { +namespace capi { + struct CodePointRangeIterator; +} // namespace capi +} // namespace + +namespace icu4x { +class CodePointRangeIterator { +public: + + inline icu4x::CodePointRangeIteratorResult next(); + + inline const icu4x::capi::CodePointRangeIterator* AsFFI() const; + inline icu4x::capi::CodePointRangeIterator* AsFFI(); + inline static const icu4x::CodePointRangeIterator* FromFFI(const icu4x::capi::CodePointRangeIterator* ptr); + inline static icu4x::CodePointRangeIterator* FromFFI(icu4x::capi::CodePointRangeIterator* ptr); + inline static void operator delete(void* ptr); +private: + CodePointRangeIterator() = delete; + CodePointRangeIterator(const icu4x::CodePointRangeIterator&) = delete; + CodePointRangeIterator(icu4x::CodePointRangeIterator&&) noexcept = delete; + CodePointRangeIterator operator=(const icu4x::CodePointRangeIterator&) = delete; + CodePointRangeIterator operator=(icu4x::CodePointRangeIterator&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CodePointRangeIterator_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.hpp new file mode 100644 index 00000000000..34a8b048c86 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIterator.hpp @@ -0,0 +1,55 @@ +#ifndef icu4x_CodePointRangeIterator_HPP +#define icu4x_CodePointRangeIterator_HPP + +#include "CodePointRangeIterator.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointRangeIteratorResult.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::CodePointRangeIteratorResult icu4x_CodePointRangeIterator_next_mv1(icu4x::capi::CodePointRangeIterator* self); + + + void icu4x_CodePointRangeIterator_destroy_mv1(CodePointRangeIterator* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::CodePointRangeIteratorResult icu4x::CodePointRangeIterator::next() { + auto result = icu4x::capi::icu4x_CodePointRangeIterator_next_mv1(this->AsFFI()); + return icu4x::CodePointRangeIteratorResult::FromFFI(result); +} + +inline const icu4x::capi::CodePointRangeIterator* icu4x::CodePointRangeIterator::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CodePointRangeIterator*>(this); +} + +inline icu4x::capi::CodePointRangeIterator* icu4x::CodePointRangeIterator::AsFFI() { + return reinterpret_cast<icu4x::capi::CodePointRangeIterator*>(this); +} + +inline const icu4x::CodePointRangeIterator* icu4x::CodePointRangeIterator::FromFFI(const icu4x::capi::CodePointRangeIterator* ptr) { + return reinterpret_cast<const icu4x::CodePointRangeIterator*>(ptr); +} + +inline icu4x::CodePointRangeIterator* icu4x::CodePointRangeIterator::FromFFI(icu4x::capi::CodePointRangeIterator* ptr) { + return reinterpret_cast<icu4x::CodePointRangeIterator*>(ptr); +} + +inline void icu4x::CodePointRangeIterator::operator delete(void* ptr) { + icu4x::capi::icu4x_CodePointRangeIterator_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointRangeIterator*>(ptr)); +} + + +#endif // icu4x_CodePointRangeIterator_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.d.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.d.hpp new file mode 100644 index 00000000000..69834e83819 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.d.hpp @@ -0,0 +1,35 @@ +#ifndef icu4x_CodePointRangeIteratorResult_D_HPP +#define icu4x_CodePointRangeIteratorResult_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct CodePointRangeIteratorResult { + uint32_t start; + uint32_t end; + bool done; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct CodePointRangeIteratorResult { + uint32_t start; + uint32_t end; + bool done; + + inline icu4x::capi::CodePointRangeIteratorResult AsFFI() const; + inline static icu4x::CodePointRangeIteratorResult FromFFI(icu4x::capi::CodePointRangeIteratorResult c_struct); +}; + +} // namespace +#endif // icu4x_CodePointRangeIteratorResult_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.hpp new file mode 100644 index 00000000000..466d507e1ed --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointRangeIteratorResult.hpp @@ -0,0 +1,42 @@ +#ifndef icu4x_CodePointRangeIteratorResult_HPP +#define icu4x_CodePointRangeIteratorResult_HPP + +#include "CodePointRangeIteratorResult.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::CodePointRangeIteratorResult icu4x::CodePointRangeIteratorResult::AsFFI() const { + return icu4x::capi::CodePointRangeIteratorResult { + /* .start = */ start, + /* .end = */ end, + /* .done = */ done, + }; +} + +inline icu4x::CodePointRangeIteratorResult icu4x::CodePointRangeIteratorResult::FromFFI(icu4x::capi::CodePointRangeIteratorResult c_struct) { + return icu4x::CodePointRangeIteratorResult { + /* .start = */ c_struct.start, + /* .end = */ c_struct.end, + /* .done = */ c_struct.done, + }; +} + + +#endif // icu4x_CodePointRangeIteratorResult_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.d.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.d.hpp new file mode 100644 index 00000000000..51df25f9490 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.d.hpp @@ -0,0 +1,77 @@ +#ifndef icu4x_CodePointSetBuilder_D_HPP +#define icu4x_CodePointSetBuilder_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CodePointSetBuilder; } +class CodePointSetBuilder; +namespace capi { struct CodePointSetData; } +class CodePointSetData; +} + + +namespace icu4x { +namespace capi { + struct CodePointSetBuilder; +} // namespace capi +} // namespace + +namespace icu4x { +class CodePointSetBuilder { +public: + + inline static std::unique_ptr<icu4x::CodePointSetBuilder> create(); + + inline std::unique_ptr<icu4x::CodePointSetData> build(); + + inline void complement(); + + inline bool is_empty() const; + + inline void add_char(char32_t ch); + + inline void add_inclusive_range(char32_t start, char32_t end); + + inline void add_set(const icu4x::CodePointSetData& data); + + inline void remove_char(char32_t ch); + + inline void remove_inclusive_range(char32_t start, char32_t end); + + inline void remove_set(const icu4x::CodePointSetData& data); + + inline void retain_char(char32_t ch); + + inline void retain_inclusive_range(char32_t start, char32_t end); + + inline void retain_set(const icu4x::CodePointSetData& data); + + inline void complement_char(char32_t ch); + + inline void complement_inclusive_range(char32_t start, char32_t end); + + inline void complement_set(const icu4x::CodePointSetData& data); + + inline const icu4x::capi::CodePointSetBuilder* AsFFI() const; + inline icu4x::capi::CodePointSetBuilder* AsFFI(); + inline static const icu4x::CodePointSetBuilder* FromFFI(const icu4x::capi::CodePointSetBuilder* ptr); + inline static icu4x::CodePointSetBuilder* FromFFI(icu4x::capi::CodePointSetBuilder* ptr); + inline static void operator delete(void* ptr); +private: + CodePointSetBuilder() = delete; + CodePointSetBuilder(const icu4x::CodePointSetBuilder&) = delete; + CodePointSetBuilder(icu4x::CodePointSetBuilder&&) noexcept = delete; + CodePointSetBuilder operator=(const icu4x::CodePointSetBuilder&) = delete; + CodePointSetBuilder operator=(icu4x::CodePointSetBuilder&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CodePointSetBuilder_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.hpp new file mode 100644 index 00000000000..de66cf9a83d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointSetBuilder.hpp @@ -0,0 +1,163 @@ +#ifndef icu4x_CodePointSetBuilder_HPP +#define icu4x_CodePointSetBuilder_HPP + +#include "CodePointSetBuilder.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointSetData.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::CodePointSetBuilder* icu4x_CodePointSetBuilder_create_mv1(void); + + icu4x::capi::CodePointSetData* icu4x_CodePointSetBuilder_build_mv1(icu4x::capi::CodePointSetBuilder* self); + + void icu4x_CodePointSetBuilder_complement_mv1(icu4x::capi::CodePointSetBuilder* self); + + bool icu4x_CodePointSetBuilder_is_empty_mv1(const icu4x::capi::CodePointSetBuilder* self); + + void icu4x_CodePointSetBuilder_add_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch); + + void icu4x_CodePointSetBuilder_add_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end); + + void icu4x_CodePointSetBuilder_add_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data); + + void icu4x_CodePointSetBuilder_remove_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch); + + void icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end); + + void icu4x_CodePointSetBuilder_remove_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data); + + void icu4x_CodePointSetBuilder_retain_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch); + + void icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end); + + void icu4x_CodePointSetBuilder_retain_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data); + + void icu4x_CodePointSetBuilder_complement_char_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t ch); + + void icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(icu4x::capi::CodePointSetBuilder* self, char32_t start, char32_t end); + + void icu4x_CodePointSetBuilder_complement_set_mv1(icu4x::capi::CodePointSetBuilder* self, const icu4x::capi::CodePointSetData* data); + + + void icu4x_CodePointSetBuilder_destroy_mv1(CodePointSetBuilder* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline std::unique_ptr<icu4x::CodePointSetBuilder> icu4x::CodePointSetBuilder::create() { + auto result = icu4x::capi::icu4x_CodePointSetBuilder_create_mv1(); + return std::unique_ptr<icu4x::CodePointSetBuilder>(icu4x::CodePointSetBuilder::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointSetData> icu4x::CodePointSetBuilder::build() { + auto result = icu4x::capi::icu4x_CodePointSetBuilder_build_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result)); +} + +inline void icu4x::CodePointSetBuilder::complement() { + icu4x::capi::icu4x_CodePointSetBuilder_complement_mv1(this->AsFFI()); +} + +inline bool icu4x::CodePointSetBuilder::is_empty() const { + auto result = icu4x::capi::icu4x_CodePointSetBuilder_is_empty_mv1(this->AsFFI()); + return result; +} + +inline void icu4x::CodePointSetBuilder::add_char(char32_t ch) { + icu4x::capi::icu4x_CodePointSetBuilder_add_char_mv1(this->AsFFI(), + ch); +} + +inline void icu4x::CodePointSetBuilder::add_inclusive_range(char32_t start, char32_t end) { + icu4x::capi::icu4x_CodePointSetBuilder_add_inclusive_range_mv1(this->AsFFI(), + start, + end); +} + +inline void icu4x::CodePointSetBuilder::add_set(const icu4x::CodePointSetData& data) { + icu4x::capi::icu4x_CodePointSetBuilder_add_set_mv1(this->AsFFI(), + data.AsFFI()); +} + +inline void icu4x::CodePointSetBuilder::remove_char(char32_t ch) { + icu4x::capi::icu4x_CodePointSetBuilder_remove_char_mv1(this->AsFFI(), + ch); +} + +inline void icu4x::CodePointSetBuilder::remove_inclusive_range(char32_t start, char32_t end) { + icu4x::capi::icu4x_CodePointSetBuilder_remove_inclusive_range_mv1(this->AsFFI(), + start, + end); +} + +inline void icu4x::CodePointSetBuilder::remove_set(const icu4x::CodePointSetData& data) { + icu4x::capi::icu4x_CodePointSetBuilder_remove_set_mv1(this->AsFFI(), + data.AsFFI()); +} + +inline void icu4x::CodePointSetBuilder::retain_char(char32_t ch) { + icu4x::capi::icu4x_CodePointSetBuilder_retain_char_mv1(this->AsFFI(), + ch); +} + +inline void icu4x::CodePointSetBuilder::retain_inclusive_range(char32_t start, char32_t end) { + icu4x::capi::icu4x_CodePointSetBuilder_retain_inclusive_range_mv1(this->AsFFI(), + start, + end); +} + +inline void icu4x::CodePointSetBuilder::retain_set(const icu4x::CodePointSetData& data) { + icu4x::capi::icu4x_CodePointSetBuilder_retain_set_mv1(this->AsFFI(), + data.AsFFI()); +} + +inline void icu4x::CodePointSetBuilder::complement_char(char32_t ch) { + icu4x::capi::icu4x_CodePointSetBuilder_complement_char_mv1(this->AsFFI(), + ch); +} + +inline void icu4x::CodePointSetBuilder::complement_inclusive_range(char32_t start, char32_t end) { + icu4x::capi::icu4x_CodePointSetBuilder_complement_inclusive_range_mv1(this->AsFFI(), + start, + end); +} + +inline void icu4x::CodePointSetBuilder::complement_set(const icu4x::CodePointSetData& data) { + icu4x::capi::icu4x_CodePointSetBuilder_complement_set_mv1(this->AsFFI(), + data.AsFFI()); +} + +inline const icu4x::capi::CodePointSetBuilder* icu4x::CodePointSetBuilder::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CodePointSetBuilder*>(this); +} + +inline icu4x::capi::CodePointSetBuilder* icu4x::CodePointSetBuilder::AsFFI() { + return reinterpret_cast<icu4x::capi::CodePointSetBuilder*>(this); +} + +inline const icu4x::CodePointSetBuilder* icu4x::CodePointSetBuilder::FromFFI(const icu4x::capi::CodePointSetBuilder* ptr) { + return reinterpret_cast<const icu4x::CodePointSetBuilder*>(ptr); +} + +inline icu4x::CodePointSetBuilder* icu4x::CodePointSetBuilder::FromFFI(icu4x::capi::CodePointSetBuilder* ptr) { + return reinterpret_cast<icu4x::CodePointSetBuilder*>(ptr); +} + +inline void icu4x::CodePointSetBuilder::operator delete(void* ptr) { + icu4x::capi::icu4x_CodePointSetBuilder_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointSetBuilder*>(ptr)); +} + + +#endif // icu4x_CodePointSetBuilder_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointSetData.d.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointSetData.d.hpp new file mode 100644 index 00000000000..f7229e25afd --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointSetData.d.hpp @@ -0,0 +1,189 @@ +#ifndef icu4x_CodePointSetData_D_HPP +#define icu4x_CodePointSetData_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CodePointRangeIterator; } +class CodePointRangeIterator; +namespace capi { struct CodePointSetData; } +class CodePointSetData; +namespace capi { struct DataProvider; } +class DataProvider; +class DataError; +class Error; +} + + +namespace icu4x { +namespace capi { + struct CodePointSetData; +} // namespace capi +} // namespace + +namespace icu4x { +class CodePointSetData { +public: + + inline bool contains(char32_t cp) const; + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges() const; + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_complemented() const; + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_for_general_category_group(const icu4x::DataProvider& provider, uint32_t group); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_ascii_hex_digit(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_alnum(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_alphabetic(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_bidi_control(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_bidi_mirrored(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_blank(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_cased(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_case_ignorable(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_full_composition_exclusion(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_changes_when_casefolded(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_changes_when_casemapped(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_changes_when_nfkc_casefolded(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_changes_when_lowercased(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_changes_when_titlecased(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_changes_when_uppercased(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_dash(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_deprecated(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_default_ignorable_code_point(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_diacritic(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_emoji_modifier_base(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_emoji_component(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_emoji_modifier(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_emoji(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_emoji_presentation(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_extender(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_extended_pictographic(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_graph(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_grapheme_base(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_grapheme_extend(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_grapheme_link(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_hex_digit(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_hyphen(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_id_continue(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_ideographic(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_id_start(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_ids_binary_operator(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_ids_trinary_operator(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_join_control(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_logical_order_exception(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_lowercase(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_math(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_noncharacter_code_point(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_nfc_inert(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_nfd_inert(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_nfkc_inert(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_nfkd_inert(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_pattern_syntax(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_pattern_white_space(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_prepended_concatenation_mark(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_print(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_quotation_mark(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_radical(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_regional_indicator(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_soft_dotted(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_segment_starter(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_case_sensitive(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_sentence_terminal(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_terminal_punctuation(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_unified_ideograph(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_uppercase(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_variation_selector(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_white_space(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_xdigit(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_xid_continue(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> load_xid_start(const icu4x::DataProvider& provider); + + inline static diplomat::result<diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::Error>, diplomat::Utf8Error> load_for_ecma262(const icu4x::DataProvider& provider, std::string_view property_name); + + inline const icu4x::capi::CodePointSetData* AsFFI() const; + inline icu4x::capi::CodePointSetData* AsFFI(); + inline static const icu4x::CodePointSetData* FromFFI(const icu4x::capi::CodePointSetData* ptr); + inline static icu4x::CodePointSetData* FromFFI(icu4x::capi::CodePointSetData* ptr); + inline static void operator delete(void* ptr); +private: + CodePointSetData() = delete; + CodePointSetData(const icu4x::CodePointSetData&) = delete; + CodePointSetData(icu4x::CodePointSetData&&) noexcept = delete; + CodePointSetData operator=(const icu4x::CodePointSetData&) = delete; + CodePointSetData operator=(icu4x::CodePointSetData&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CodePointSetData_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CodePointSetData.hpp b/ffi/capi/bindings/cpp/icu4x/CodePointSetData.hpp new file mode 100644 index 00000000000..88b6f6365e3 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CodePointSetData.hpp @@ -0,0 +1,615 @@ +#ifndef icu4x_CodePointSetData_HPP +#define icu4x_CodePointSetData_HPP + +#include "CodePointSetData.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointRangeIterator.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Error.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + bool icu4x_CodePointSetData_contains_mv1(const icu4x::capi::CodePointSetData* self, char32_t cp); + + icu4x::capi::CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_mv1(const icu4x::capi::CodePointSetData* self); + + icu4x::capi::CodePointRangeIterator* icu4x_CodePointSetData_iter_ranges_complemented_mv1(const icu4x::capi::CodePointSetData* self); + + typedef struct icu4x_CodePointSetData_load_for_general_category_group_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_for_general_category_group_mv1_result; + icu4x_CodePointSetData_load_for_general_category_group_mv1_result icu4x_CodePointSetData_load_for_general_category_group_mv1(const icu4x::capi::DataProvider* provider, uint32_t group); + + typedef struct icu4x_CodePointSetData_load_ascii_hex_digit_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ascii_hex_digit_mv1_result; + icu4x_CodePointSetData_load_ascii_hex_digit_mv1_result icu4x_CodePointSetData_load_ascii_hex_digit_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_alnum_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_alnum_mv1_result; + icu4x_CodePointSetData_load_alnum_mv1_result icu4x_CodePointSetData_load_alnum_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_alphabetic_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_alphabetic_mv1_result; + icu4x_CodePointSetData_load_alphabetic_mv1_result icu4x_CodePointSetData_load_alphabetic_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_bidi_control_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_bidi_control_mv1_result; + icu4x_CodePointSetData_load_bidi_control_mv1_result icu4x_CodePointSetData_load_bidi_control_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_bidi_mirrored_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_bidi_mirrored_mv1_result; + icu4x_CodePointSetData_load_bidi_mirrored_mv1_result icu4x_CodePointSetData_load_bidi_mirrored_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_blank_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_blank_mv1_result; + icu4x_CodePointSetData_load_blank_mv1_result icu4x_CodePointSetData_load_blank_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_cased_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_cased_mv1_result; + icu4x_CodePointSetData_load_cased_mv1_result icu4x_CodePointSetData_load_cased_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_case_ignorable_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_case_ignorable_mv1_result; + icu4x_CodePointSetData_load_case_ignorable_mv1_result icu4x_CodePointSetData_load_case_ignorable_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_full_composition_exclusion_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_full_composition_exclusion_mv1_result; + icu4x_CodePointSetData_load_full_composition_exclusion_mv1_result icu4x_CodePointSetData_load_full_composition_exclusion_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_changes_when_casefolded_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_casefolded_mv1_result; + icu4x_CodePointSetData_load_changes_when_casefolded_mv1_result icu4x_CodePointSetData_load_changes_when_casefolded_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_changes_when_casemapped_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_casemapped_mv1_result; + icu4x_CodePointSetData_load_changes_when_casemapped_mv1_result icu4x_CodePointSetData_load_changes_when_casemapped_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1_result; + icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1_result icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_changes_when_lowercased_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_lowercased_mv1_result; + icu4x_CodePointSetData_load_changes_when_lowercased_mv1_result icu4x_CodePointSetData_load_changes_when_lowercased_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_changes_when_titlecased_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_titlecased_mv1_result; + icu4x_CodePointSetData_load_changes_when_titlecased_mv1_result icu4x_CodePointSetData_load_changes_when_titlecased_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_changes_when_uppercased_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_changes_when_uppercased_mv1_result; + icu4x_CodePointSetData_load_changes_when_uppercased_mv1_result icu4x_CodePointSetData_load_changes_when_uppercased_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_dash_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_dash_mv1_result; + icu4x_CodePointSetData_load_dash_mv1_result icu4x_CodePointSetData_load_dash_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_deprecated_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_deprecated_mv1_result; + icu4x_CodePointSetData_load_deprecated_mv1_result icu4x_CodePointSetData_load_deprecated_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_default_ignorable_code_point_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_default_ignorable_code_point_mv1_result; + icu4x_CodePointSetData_load_default_ignorable_code_point_mv1_result icu4x_CodePointSetData_load_default_ignorable_code_point_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_diacritic_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_diacritic_mv1_result; + icu4x_CodePointSetData_load_diacritic_mv1_result icu4x_CodePointSetData_load_diacritic_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_emoji_modifier_base_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_modifier_base_mv1_result; + icu4x_CodePointSetData_load_emoji_modifier_base_mv1_result icu4x_CodePointSetData_load_emoji_modifier_base_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_emoji_component_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_component_mv1_result; + icu4x_CodePointSetData_load_emoji_component_mv1_result icu4x_CodePointSetData_load_emoji_component_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_emoji_modifier_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_modifier_mv1_result; + icu4x_CodePointSetData_load_emoji_modifier_mv1_result icu4x_CodePointSetData_load_emoji_modifier_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_emoji_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_mv1_result; + icu4x_CodePointSetData_load_emoji_mv1_result icu4x_CodePointSetData_load_emoji_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_emoji_presentation_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_emoji_presentation_mv1_result; + icu4x_CodePointSetData_load_emoji_presentation_mv1_result icu4x_CodePointSetData_load_emoji_presentation_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_extender_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_extender_mv1_result; + icu4x_CodePointSetData_load_extender_mv1_result icu4x_CodePointSetData_load_extender_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_extended_pictographic_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_extended_pictographic_mv1_result; + icu4x_CodePointSetData_load_extended_pictographic_mv1_result icu4x_CodePointSetData_load_extended_pictographic_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_graph_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_graph_mv1_result; + icu4x_CodePointSetData_load_graph_mv1_result icu4x_CodePointSetData_load_graph_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_grapheme_base_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_grapheme_base_mv1_result; + icu4x_CodePointSetData_load_grapheme_base_mv1_result icu4x_CodePointSetData_load_grapheme_base_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_grapheme_extend_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_grapheme_extend_mv1_result; + icu4x_CodePointSetData_load_grapheme_extend_mv1_result icu4x_CodePointSetData_load_grapheme_extend_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_grapheme_link_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_grapheme_link_mv1_result; + icu4x_CodePointSetData_load_grapheme_link_mv1_result icu4x_CodePointSetData_load_grapheme_link_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_hex_digit_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_hex_digit_mv1_result; + icu4x_CodePointSetData_load_hex_digit_mv1_result icu4x_CodePointSetData_load_hex_digit_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_hyphen_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_hyphen_mv1_result; + icu4x_CodePointSetData_load_hyphen_mv1_result icu4x_CodePointSetData_load_hyphen_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_id_continue_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_id_continue_mv1_result; + icu4x_CodePointSetData_load_id_continue_mv1_result icu4x_CodePointSetData_load_id_continue_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_ideographic_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ideographic_mv1_result; + icu4x_CodePointSetData_load_ideographic_mv1_result icu4x_CodePointSetData_load_ideographic_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_id_start_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_id_start_mv1_result; + icu4x_CodePointSetData_load_id_start_mv1_result icu4x_CodePointSetData_load_id_start_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_ids_binary_operator_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ids_binary_operator_mv1_result; + icu4x_CodePointSetData_load_ids_binary_operator_mv1_result icu4x_CodePointSetData_load_ids_binary_operator_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_ids_trinary_operator_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_ids_trinary_operator_mv1_result; + icu4x_CodePointSetData_load_ids_trinary_operator_mv1_result icu4x_CodePointSetData_load_ids_trinary_operator_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_join_control_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_join_control_mv1_result; + icu4x_CodePointSetData_load_join_control_mv1_result icu4x_CodePointSetData_load_join_control_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_logical_order_exception_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_logical_order_exception_mv1_result; + icu4x_CodePointSetData_load_logical_order_exception_mv1_result icu4x_CodePointSetData_load_logical_order_exception_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_lowercase_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_lowercase_mv1_result; + icu4x_CodePointSetData_load_lowercase_mv1_result icu4x_CodePointSetData_load_lowercase_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_math_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_math_mv1_result; + icu4x_CodePointSetData_load_math_mv1_result icu4x_CodePointSetData_load_math_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_noncharacter_code_point_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_noncharacter_code_point_mv1_result; + icu4x_CodePointSetData_load_noncharacter_code_point_mv1_result icu4x_CodePointSetData_load_noncharacter_code_point_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_nfc_inert_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfc_inert_mv1_result; + icu4x_CodePointSetData_load_nfc_inert_mv1_result icu4x_CodePointSetData_load_nfc_inert_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_nfd_inert_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfd_inert_mv1_result; + icu4x_CodePointSetData_load_nfd_inert_mv1_result icu4x_CodePointSetData_load_nfd_inert_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_nfkc_inert_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfkc_inert_mv1_result; + icu4x_CodePointSetData_load_nfkc_inert_mv1_result icu4x_CodePointSetData_load_nfkc_inert_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_nfkd_inert_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_nfkd_inert_mv1_result; + icu4x_CodePointSetData_load_nfkd_inert_mv1_result icu4x_CodePointSetData_load_nfkd_inert_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_pattern_syntax_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_pattern_syntax_mv1_result; + icu4x_CodePointSetData_load_pattern_syntax_mv1_result icu4x_CodePointSetData_load_pattern_syntax_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_pattern_white_space_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_pattern_white_space_mv1_result; + icu4x_CodePointSetData_load_pattern_white_space_mv1_result icu4x_CodePointSetData_load_pattern_white_space_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1_result; + icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1_result icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_print_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_print_mv1_result; + icu4x_CodePointSetData_load_print_mv1_result icu4x_CodePointSetData_load_print_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_quotation_mark_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_quotation_mark_mv1_result; + icu4x_CodePointSetData_load_quotation_mark_mv1_result icu4x_CodePointSetData_load_quotation_mark_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_radical_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_radical_mv1_result; + icu4x_CodePointSetData_load_radical_mv1_result icu4x_CodePointSetData_load_radical_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_regional_indicator_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_regional_indicator_mv1_result; + icu4x_CodePointSetData_load_regional_indicator_mv1_result icu4x_CodePointSetData_load_regional_indicator_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_soft_dotted_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_soft_dotted_mv1_result; + icu4x_CodePointSetData_load_soft_dotted_mv1_result icu4x_CodePointSetData_load_soft_dotted_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_segment_starter_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_segment_starter_mv1_result; + icu4x_CodePointSetData_load_segment_starter_mv1_result icu4x_CodePointSetData_load_segment_starter_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_case_sensitive_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_case_sensitive_mv1_result; + icu4x_CodePointSetData_load_case_sensitive_mv1_result icu4x_CodePointSetData_load_case_sensitive_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_sentence_terminal_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_sentence_terminal_mv1_result; + icu4x_CodePointSetData_load_sentence_terminal_mv1_result icu4x_CodePointSetData_load_sentence_terminal_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_terminal_punctuation_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_terminal_punctuation_mv1_result; + icu4x_CodePointSetData_load_terminal_punctuation_mv1_result icu4x_CodePointSetData_load_terminal_punctuation_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_unified_ideograph_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_unified_ideograph_mv1_result; + icu4x_CodePointSetData_load_unified_ideograph_mv1_result icu4x_CodePointSetData_load_unified_ideograph_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_uppercase_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_uppercase_mv1_result; + icu4x_CodePointSetData_load_uppercase_mv1_result icu4x_CodePointSetData_load_uppercase_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_variation_selector_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_variation_selector_mv1_result; + icu4x_CodePointSetData_load_variation_selector_mv1_result icu4x_CodePointSetData_load_variation_selector_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_white_space_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_white_space_mv1_result; + icu4x_CodePointSetData_load_white_space_mv1_result icu4x_CodePointSetData_load_white_space_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_xdigit_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_xdigit_mv1_result; + icu4x_CodePointSetData_load_xdigit_mv1_result icu4x_CodePointSetData_load_xdigit_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_xid_continue_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_xid_continue_mv1_result; + icu4x_CodePointSetData_load_xid_continue_mv1_result icu4x_CodePointSetData_load_xid_continue_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_xid_start_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CodePointSetData_load_xid_start_mv1_result; + icu4x_CodePointSetData_load_xid_start_mv1_result icu4x_CodePointSetData_load_xid_start_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_CodePointSetData_load_for_ecma262_mv1_result {union {icu4x::capi::CodePointSetData* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_CodePointSetData_load_for_ecma262_mv1_result; + icu4x_CodePointSetData_load_for_ecma262_mv1_result icu4x_CodePointSetData_load_for_ecma262_mv1(const icu4x::capi::DataProvider* provider, const char* property_name_data, size_t property_name_len); + + + void icu4x_CodePointSetData_destroy_mv1(CodePointSetData* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline bool icu4x::CodePointSetData::contains(char32_t cp) const { + auto result = icu4x::capi::icu4x_CodePointSetData_contains_mv1(this->AsFFI(), + cp); + return result; +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointSetData::iter_ranges() const { + auto result = icu4x::capi::icu4x_CodePointSetData_iter_ranges_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::CodePointSetData::iter_ranges_complemented() const { + auto result = icu4x::capi::icu4x_CodePointSetData_iter_ranges_complemented_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_for_general_category_group(const icu4x::DataProvider& provider, uint32_t group) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_for_general_category_group_mv1(provider.AsFFI(), + group); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_ascii_hex_digit(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_ascii_hex_digit_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_alnum(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_alnum_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_alphabetic(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_alphabetic_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_bidi_control(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_bidi_control_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_bidi_mirrored(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_bidi_mirrored_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_blank(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_blank_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_cased(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_cased_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_case_ignorable(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_case_ignorable_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_full_composition_exclusion(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_full_composition_exclusion_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_changes_when_casefolded(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_changes_when_casefolded_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_changes_when_casemapped(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_changes_when_casemapped_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_changes_when_nfkc_casefolded(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_changes_when_nfkc_casefolded_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_changes_when_lowercased(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_changes_when_lowercased_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_changes_when_titlecased(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_changes_when_titlecased_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_changes_when_uppercased(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_changes_when_uppercased_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_dash(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_dash_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_deprecated(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_deprecated_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_default_ignorable_code_point(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_default_ignorable_code_point_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_diacritic(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_diacritic_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_emoji_modifier_base(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_emoji_modifier_base_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_emoji_component(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_emoji_component_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_emoji_modifier(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_emoji_modifier_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_emoji(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_emoji_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_emoji_presentation(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_emoji_presentation_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_extender(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_extender_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_extended_pictographic(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_extended_pictographic_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_graph(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_graph_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_grapheme_base(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_grapheme_base_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_grapheme_extend(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_grapheme_extend_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_grapheme_link(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_grapheme_link_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_hex_digit(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_hex_digit_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_hyphen(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_hyphen_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_id_continue(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_id_continue_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_ideographic(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_ideographic_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_id_start(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_id_start_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_ids_binary_operator(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_ids_binary_operator_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_ids_trinary_operator(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_ids_trinary_operator_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_join_control(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_join_control_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_logical_order_exception(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_logical_order_exception_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_lowercase(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_lowercase_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_math(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_math_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_noncharacter_code_point(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_noncharacter_code_point_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_nfc_inert(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_nfc_inert_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_nfd_inert(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_nfd_inert_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_nfkc_inert(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_nfkc_inert_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_nfkd_inert(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_nfkd_inert_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_pattern_syntax(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_pattern_syntax_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_pattern_white_space(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_pattern_white_space_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_prepended_concatenation_mark(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_prepended_concatenation_mark_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_print(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_print_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_quotation_mark(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_quotation_mark_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_radical(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_radical_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_regional_indicator(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_regional_indicator_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_soft_dotted(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_soft_dotted_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_segment_starter(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_segment_starter_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_case_sensitive(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_case_sensitive_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_sentence_terminal(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_sentence_terminal_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_terminal_punctuation(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_terminal_punctuation_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_unified_ideograph(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_unified_ideograph_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_uppercase(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_uppercase_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_variation_selector(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_variation_selector_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_white_space(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_white_space_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_xdigit(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_xdigit_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_xid_continue(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_xid_continue_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError> icu4x::CodePointSetData::load_xid_start(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_CodePointSetData_load_xid_start_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::Error>, diplomat::Utf8Error> icu4x::CodePointSetData::load_for_ecma262(const icu4x::DataProvider& provider, std::string_view property_name) { + if (!diplomat::capi::diplomat_is_str(property_name.data(), property_name.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + auto result = icu4x::capi::icu4x_CodePointSetData_load_for_ecma262_mv1(provider.AsFFI(), + property_name.data(), + property_name.size()); + return diplomat::Ok<diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::Error>>(result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::CodePointSetData>>(std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CodePointSetData>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err)))); +} + +inline const icu4x::capi::CodePointSetData* icu4x::CodePointSetData::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CodePointSetData*>(this); +} + +inline icu4x::capi::CodePointSetData* icu4x::CodePointSetData::AsFFI() { + return reinterpret_cast<icu4x::capi::CodePointSetData*>(this); +} + +inline const icu4x::CodePointSetData* icu4x::CodePointSetData::FromFFI(const icu4x::capi::CodePointSetData* ptr) { + return reinterpret_cast<const icu4x::CodePointSetData*>(ptr); +} + +inline icu4x::CodePointSetData* icu4x::CodePointSetData::FromFFI(icu4x::capi::CodePointSetData* ptr) { + return reinterpret_cast<icu4x::CodePointSetData*>(ptr); +} + +inline void icu4x::CodePointSetData::operator delete(void* ptr) { + icu4x::capi::icu4x_CodePointSetData_destroy_mv1(reinterpret_cast<icu4x::capi::CodePointSetData*>(ptr)); +} + + +#endif // icu4x_CodePointSetData_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Collator.d.hpp b/ffi/capi/bindings/cpp/icu4x/Collator.d.hpp new file mode 100644 index 00000000000..bcf74ce1aac --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Collator.d.hpp @@ -0,0 +1,58 @@ +#ifndef icu4x_Collator_D_HPP +#define icu4x_Collator_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Collator; } +class Collator; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +struct CollatorOptionsV1; +struct CollatorResolvedOptionsV1; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct Collator; +} // namespace capi +} // namespace + +namespace icu4x { +class Collator { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError> create_v1(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::CollatorOptionsV1 options); + + inline int8_t compare(std::string_view left, std::string_view right) const; + + inline int8_t compare16(std::u16string_view left, std::u16string_view right) const; + + inline icu4x::CollatorResolvedOptionsV1 resolved_options_v1() const; + + inline const icu4x::capi::Collator* AsFFI() const; + inline icu4x::capi::Collator* AsFFI(); + inline static const icu4x::Collator* FromFFI(const icu4x::capi::Collator* ptr); + inline static icu4x::Collator* FromFFI(icu4x::capi::Collator* ptr); + inline static void operator delete(void* ptr); +private: + Collator() = delete; + Collator(const icu4x::Collator&) = delete; + Collator(icu4x::Collator&&) noexcept = delete; + Collator operator=(const icu4x::Collator&) = delete; + Collator operator=(icu4x::Collator&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_Collator_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Collator.hpp b/ffi/capi/bindings/cpp/icu4x/Collator.hpp new file mode 100644 index 00000000000..8a829a5a6f2 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Collator.hpp @@ -0,0 +1,91 @@ +#ifndef icu4x_Collator_HPP +#define icu4x_Collator_HPP + +#include "Collator.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CollatorOptionsV1.hpp" +#include "CollatorResolvedOptionsV1.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_Collator_create_v1_mv1_result {union {icu4x::capi::Collator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_Collator_create_v1_mv1_result; + icu4x_Collator_create_v1_mv1_result icu4x_Collator_create_v1_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::CollatorOptionsV1 options); + + int8_t icu4x_Collator_compare_utf8_mv1(const icu4x::capi::Collator* self, const char* left_data, size_t left_len, const char* right_data, size_t right_len); + + int8_t icu4x_Collator_compare_utf16_mv1(const icu4x::capi::Collator* self, const char16_t* left_data, size_t left_len, const char16_t* right_data, size_t right_len); + + icu4x::capi::CollatorResolvedOptionsV1 icu4x_Collator_resolved_options_v1_mv1(const icu4x::capi::Collator* self); + + + void icu4x_Collator_destroy_mv1(Collator* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError> icu4x::Collator::create_v1(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::CollatorOptionsV1 options) { + auto result = icu4x::capi::icu4x_Collator_create_v1_mv1(provider.AsFFI(), + locale.AsFFI(), + options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::Collator>>(std::unique_ptr<icu4x::Collator>(icu4x::Collator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Collator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline int8_t icu4x::Collator::compare(std::string_view left, std::string_view right) const { + auto result = icu4x::capi::icu4x_Collator_compare_utf8_mv1(this->AsFFI(), + left.data(), + left.size(), + right.data(), + right.size()); + return result; +} + +inline int8_t icu4x::Collator::compare16(std::u16string_view left, std::u16string_view right) const { + auto result = icu4x::capi::icu4x_Collator_compare_utf16_mv1(this->AsFFI(), + left.data(), + left.size(), + right.data(), + right.size()); + return result; +} + +inline icu4x::CollatorResolvedOptionsV1 icu4x::Collator::resolved_options_v1() const { + auto result = icu4x::capi::icu4x_Collator_resolved_options_v1_mv1(this->AsFFI()); + return icu4x::CollatorResolvedOptionsV1::FromFFI(result); +} + +inline const icu4x::capi::Collator* icu4x::Collator::AsFFI() const { + return reinterpret_cast<const icu4x::capi::Collator*>(this); +} + +inline icu4x::capi::Collator* icu4x::Collator::AsFFI() { + return reinterpret_cast<icu4x::capi::Collator*>(this); +} + +inline const icu4x::Collator* icu4x::Collator::FromFFI(const icu4x::capi::Collator* ptr) { + return reinterpret_cast<const icu4x::Collator*>(ptr); +} + +inline icu4x::Collator* icu4x::Collator::FromFFI(icu4x::capi::Collator* ptr) { + return reinterpret_cast<icu4x::Collator*>(ptr); +} + +inline void icu4x::Collator::operator delete(void* ptr) { + icu4x::capi::icu4x_Collator_destroy_mv1(reinterpret_cast<icu4x::capi::Collator*>(ptr)); +} + + +#endif // icu4x_Collator_HPP diff --git a/ffi/capi/bindings/cpp/CollatorAlternateHandling.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorAlternateHandling.d.hpp similarity index 66% rename from ffi/capi/bindings/cpp/CollatorAlternateHandling.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CollatorAlternateHandling.d.hpp index 14ae3134ad8..09eb91a4945 100644 --- a/ffi/capi/bindings/cpp/CollatorAlternateHandling.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CollatorAlternateHandling.d.hpp @@ -1,5 +1,5 @@ -#ifndef CollatorAlternateHandling_D_HPP -#define CollatorAlternateHandling_D_HPP +#ifndef icu4x_CollatorAlternateHandling_D_HPP +#define icu4x_CollatorAlternateHandling_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CollatorAlternateHandling { CollatorAlternateHandling_Auto = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CollatorAlternateHandling { public: enum Value { @@ -35,11 +36,11 @@ class CollatorAlternateHandling { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CollatorAlternateHandling AsFFI() const; - inline static CollatorAlternateHandling FromFFI(diplomat::capi::CollatorAlternateHandling c_enum); + inline icu4x::capi::CollatorAlternateHandling AsFFI() const; + inline static icu4x::CollatorAlternateHandling FromFFI(icu4x::capi::CollatorAlternateHandling c_enum); private: Value value; }; - -#endif // CollatorAlternateHandling_D_HPP +} // namespace +#endif // icu4x_CollatorAlternateHandling_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorAlternateHandling.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorAlternateHandling.hpp new file mode 100644 index 00000000000..3227ad2ffd2 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorAlternateHandling.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_CollatorAlternateHandling_HPP +#define icu4x_CollatorAlternateHandling_HPP + +#include "CollatorAlternateHandling.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CollatorAlternateHandling icu4x::CollatorAlternateHandling::AsFFI() const { + return static_cast<icu4x::capi::CollatorAlternateHandling>(value); +} + +inline icu4x::CollatorAlternateHandling icu4x::CollatorAlternateHandling::FromFFI(icu4x::capi::CollatorAlternateHandling c_enum) { + switch (c_enum) { + case icu4x::capi::CollatorAlternateHandling_Auto: + case icu4x::capi::CollatorAlternateHandling_NonIgnorable: + case icu4x::capi::CollatorAlternateHandling_Shifted: + return static_cast<icu4x::CollatorAlternateHandling::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CollatorAlternateHandling_HPP diff --git a/ffi/capi/bindings/cpp/CollatorBackwardSecondLevel.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorBackwardSecondLevel.d.hpp similarity index 65% rename from ffi/capi/bindings/cpp/CollatorBackwardSecondLevel.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CollatorBackwardSecondLevel.d.hpp index d573e531d8d..4e8d722fd50 100644 --- a/ffi/capi/bindings/cpp/CollatorBackwardSecondLevel.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CollatorBackwardSecondLevel.d.hpp @@ -1,5 +1,5 @@ -#ifndef CollatorBackwardSecondLevel_D_HPP -#define CollatorBackwardSecondLevel_D_HPP +#ifndef icu4x_CollatorBackwardSecondLevel_D_HPP +#define icu4x_CollatorBackwardSecondLevel_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CollatorBackwardSecondLevel { CollatorBackwardSecondLevel_Auto = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CollatorBackwardSecondLevel { public: enum Value { @@ -35,11 +36,11 @@ class CollatorBackwardSecondLevel { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CollatorBackwardSecondLevel AsFFI() const; - inline static CollatorBackwardSecondLevel FromFFI(diplomat::capi::CollatorBackwardSecondLevel c_enum); + inline icu4x::capi::CollatorBackwardSecondLevel AsFFI() const; + inline static icu4x::CollatorBackwardSecondLevel FromFFI(icu4x::capi::CollatorBackwardSecondLevel c_enum); private: Value value; }; - -#endif // CollatorBackwardSecondLevel_D_HPP +} // namespace +#endif // icu4x_CollatorBackwardSecondLevel_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorBackwardSecondLevel.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorBackwardSecondLevel.hpp new file mode 100644 index 00000000000..cc38ba79acf --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorBackwardSecondLevel.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_CollatorBackwardSecondLevel_HPP +#define icu4x_CollatorBackwardSecondLevel_HPP + +#include "CollatorBackwardSecondLevel.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CollatorBackwardSecondLevel icu4x::CollatorBackwardSecondLevel::AsFFI() const { + return static_cast<icu4x::capi::CollatorBackwardSecondLevel>(value); +} + +inline icu4x::CollatorBackwardSecondLevel icu4x::CollatorBackwardSecondLevel::FromFFI(icu4x::capi::CollatorBackwardSecondLevel c_enum) { + switch (c_enum) { + case icu4x::capi::CollatorBackwardSecondLevel_Auto: + case icu4x::capi::CollatorBackwardSecondLevel_Off: + case icu4x::capi::CollatorBackwardSecondLevel_On: + return static_cast<icu4x::CollatorBackwardSecondLevel::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CollatorBackwardSecondLevel_HPP diff --git a/ffi/capi/bindings/cpp/CollatorCaseFirst.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorCaseFirst.d.hpp similarity index 69% rename from ffi/capi/bindings/cpp/CollatorCaseFirst.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CollatorCaseFirst.d.hpp index 962a5b0b0aa..be5b70becd2 100644 --- a/ffi/capi/bindings/cpp/CollatorCaseFirst.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CollatorCaseFirst.d.hpp @@ -1,5 +1,5 @@ -#ifndef CollatorCaseFirst_D_HPP -#define CollatorCaseFirst_D_HPP +#ifndef icu4x_CollatorCaseFirst_D_HPP +#define icu4x_CollatorCaseFirst_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CollatorCaseFirst { CollatorCaseFirst_Auto = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CollatorCaseFirst { public: enum Value { @@ -37,11 +38,11 @@ class CollatorCaseFirst { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CollatorCaseFirst AsFFI() const; - inline static CollatorCaseFirst FromFFI(diplomat::capi::CollatorCaseFirst c_enum); + inline icu4x::capi::CollatorCaseFirst AsFFI() const; + inline static icu4x::CollatorCaseFirst FromFFI(icu4x::capi::CollatorCaseFirst c_enum); private: Value value; }; - -#endif // CollatorCaseFirst_D_HPP +} // namespace +#endif // icu4x_CollatorCaseFirst_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorCaseFirst.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorCaseFirst.hpp new file mode 100644 index 00000000000..fbeba8f1a94 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorCaseFirst.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_CollatorCaseFirst_HPP +#define icu4x_CollatorCaseFirst_HPP + +#include "CollatorCaseFirst.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CollatorCaseFirst icu4x::CollatorCaseFirst::AsFFI() const { + return static_cast<icu4x::capi::CollatorCaseFirst>(value); +} + +inline icu4x::CollatorCaseFirst icu4x::CollatorCaseFirst::FromFFI(icu4x::capi::CollatorCaseFirst c_enum) { + switch (c_enum) { + case icu4x::capi::CollatorCaseFirst_Auto: + case icu4x::capi::CollatorCaseFirst_Off: + case icu4x::capi::CollatorCaseFirst_LowerFirst: + case icu4x::capi::CollatorCaseFirst_UpperFirst: + return static_cast<icu4x::CollatorCaseFirst::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CollatorCaseFirst_HPP diff --git a/ffi/capi/bindings/cpp/CollatorCaseLevel.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorCaseLevel.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/CollatorCaseLevel.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CollatorCaseLevel.d.hpp index ed58f66402b..2c0cc7dd468 100644 --- a/ffi/capi/bindings/cpp/CollatorCaseLevel.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CollatorCaseLevel.d.hpp @@ -1,5 +1,5 @@ -#ifndef CollatorCaseLevel_D_HPP -#define CollatorCaseLevel_D_HPP +#ifndef icu4x_CollatorCaseLevel_D_HPP +#define icu4x_CollatorCaseLevel_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CollatorCaseLevel { CollatorCaseLevel_Auto = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CollatorCaseLevel { public: enum Value { @@ -35,11 +36,11 @@ class CollatorCaseLevel { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CollatorCaseLevel AsFFI() const; - inline static CollatorCaseLevel FromFFI(diplomat::capi::CollatorCaseLevel c_enum); + inline icu4x::capi::CollatorCaseLevel AsFFI() const; + inline static icu4x::CollatorCaseLevel FromFFI(icu4x::capi::CollatorCaseLevel c_enum); private: Value value; }; - -#endif // CollatorCaseLevel_D_HPP +} // namespace +#endif // icu4x_CollatorCaseLevel_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorCaseLevel.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorCaseLevel.hpp new file mode 100644 index 00000000000..8904a14918b --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorCaseLevel.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_CollatorCaseLevel_HPP +#define icu4x_CollatorCaseLevel_HPP + +#include "CollatorCaseLevel.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CollatorCaseLevel icu4x::CollatorCaseLevel::AsFFI() const { + return static_cast<icu4x::capi::CollatorCaseLevel>(value); +} + +inline icu4x::CollatorCaseLevel icu4x::CollatorCaseLevel::FromFFI(icu4x::capi::CollatorCaseLevel c_enum) { + switch (c_enum) { + case icu4x::capi::CollatorCaseLevel_Auto: + case icu4x::capi::CollatorCaseLevel_Off: + case icu4x::capi::CollatorCaseLevel_On: + return static_cast<icu4x::CollatorCaseLevel::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CollatorCaseLevel_HPP diff --git a/ffi/capi/bindings/cpp/CollatorMaxVariable.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorMaxVariable.d.hpp similarity index 70% rename from ffi/capi/bindings/cpp/CollatorMaxVariable.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CollatorMaxVariable.d.hpp index 17ec788682f..20ca2edc751 100644 --- a/ffi/capi/bindings/cpp/CollatorMaxVariable.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CollatorMaxVariable.d.hpp @@ -1,5 +1,5 @@ -#ifndef CollatorMaxVariable_D_HPP -#define CollatorMaxVariable_D_HPP +#ifndef icu4x_CollatorMaxVariable_D_HPP +#define icu4x_CollatorMaxVariable_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CollatorMaxVariable { CollatorMaxVariable_Auto = 0, @@ -22,6 +22,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CollatorMaxVariable { public: enum Value { @@ -39,11 +40,11 @@ class CollatorMaxVariable { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CollatorMaxVariable AsFFI() const; - inline static CollatorMaxVariable FromFFI(diplomat::capi::CollatorMaxVariable c_enum); + inline icu4x::capi::CollatorMaxVariable AsFFI() const; + inline static icu4x::CollatorMaxVariable FromFFI(icu4x::capi::CollatorMaxVariable c_enum); private: Value value; }; - -#endif // CollatorMaxVariable_D_HPP +} // namespace +#endif // icu4x_CollatorMaxVariable_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorMaxVariable.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorMaxVariable.hpp new file mode 100644 index 00000000000..853d12cbc35 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorMaxVariable.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_CollatorMaxVariable_HPP +#define icu4x_CollatorMaxVariable_HPP + +#include "CollatorMaxVariable.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CollatorMaxVariable icu4x::CollatorMaxVariable::AsFFI() const { + return static_cast<icu4x::capi::CollatorMaxVariable>(value); +} + +inline icu4x::CollatorMaxVariable icu4x::CollatorMaxVariable::FromFFI(icu4x::capi::CollatorMaxVariable c_enum) { + switch (c_enum) { + case icu4x::capi::CollatorMaxVariable_Auto: + case icu4x::capi::CollatorMaxVariable_Space: + case icu4x::capi::CollatorMaxVariable_Punctuation: + case icu4x::capi::CollatorMaxVariable_Symbol: + case icu4x::capi::CollatorMaxVariable_Currency: + return static_cast<icu4x::CollatorMaxVariable::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CollatorMaxVariable_HPP diff --git a/ffi/capi/bindings/cpp/CollatorNumeric.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorNumeric.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/CollatorNumeric.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CollatorNumeric.d.hpp index fd16f904299..dfe921080bc 100644 --- a/ffi/capi/bindings/cpp/CollatorNumeric.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CollatorNumeric.d.hpp @@ -1,5 +1,5 @@ -#ifndef CollatorNumeric_D_HPP -#define CollatorNumeric_D_HPP +#ifndef icu4x_CollatorNumeric_D_HPP +#define icu4x_CollatorNumeric_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CollatorNumeric { CollatorNumeric_Auto = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CollatorNumeric { public: enum Value { @@ -35,11 +36,11 @@ class CollatorNumeric { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CollatorNumeric AsFFI() const; - inline static CollatorNumeric FromFFI(diplomat::capi::CollatorNumeric c_enum); + inline icu4x::capi::CollatorNumeric AsFFI() const; + inline static icu4x::CollatorNumeric FromFFI(icu4x::capi::CollatorNumeric c_enum); private: Value value; }; - -#endif // CollatorNumeric_D_HPP +} // namespace +#endif // icu4x_CollatorNumeric_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorNumeric.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorNumeric.hpp new file mode 100644 index 00000000000..33bfcbff85e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorNumeric.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_CollatorNumeric_HPP +#define icu4x_CollatorNumeric_HPP + +#include "CollatorNumeric.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CollatorNumeric icu4x::CollatorNumeric::AsFFI() const { + return static_cast<icu4x::capi::CollatorNumeric>(value); +} + +inline icu4x::CollatorNumeric icu4x::CollatorNumeric::FromFFI(icu4x::capi::CollatorNumeric c_enum) { + switch (c_enum) { + case icu4x::capi::CollatorNumeric_Auto: + case icu4x::capi::CollatorNumeric_Off: + case icu4x::capi::CollatorNumeric_On: + return static_cast<icu4x::CollatorNumeric::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CollatorNumeric_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.d.hpp new file mode 100644 index 00000000000..beb7afd3a96 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_CollatorOptionsV1_D_HPP +#define icu4x_CollatorOptionsV1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CollatorAlternateHandling.d.hpp" +#include "CollatorBackwardSecondLevel.d.hpp" +#include "CollatorCaseFirst.d.hpp" +#include "CollatorCaseLevel.d.hpp" +#include "CollatorMaxVariable.d.hpp" +#include "CollatorNumeric.d.hpp" +#include "CollatorStrength.d.hpp" + +namespace icu4x { +class CollatorAlternateHandling; +class CollatorBackwardSecondLevel; +class CollatorCaseFirst; +class CollatorCaseLevel; +class CollatorMaxVariable; +class CollatorNumeric; +class CollatorStrength; +} + + +namespace icu4x { +namespace capi { + struct CollatorOptionsV1 { + icu4x::capi::CollatorStrength strength; + icu4x::capi::CollatorAlternateHandling alternate_handling; + icu4x::capi::CollatorCaseFirst case_first; + icu4x::capi::CollatorMaxVariable max_variable; + icu4x::capi::CollatorCaseLevel case_level; + icu4x::capi::CollatorNumeric numeric; + icu4x::capi::CollatorBackwardSecondLevel backward_second_level; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct CollatorOptionsV1 { + icu4x::CollatorStrength strength; + icu4x::CollatorAlternateHandling alternate_handling; + icu4x::CollatorCaseFirst case_first; + icu4x::CollatorMaxVariable max_variable; + icu4x::CollatorCaseLevel case_level; + icu4x::CollatorNumeric numeric; + icu4x::CollatorBackwardSecondLevel backward_second_level; + + inline icu4x::capi::CollatorOptionsV1 AsFFI() const; + inline static icu4x::CollatorOptionsV1 FromFFI(icu4x::capi::CollatorOptionsV1 c_struct); +}; + +} // namespace +#endif // icu4x_CollatorOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.hpp new file mode 100644 index 00000000000..d87788b101f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorOptionsV1.hpp @@ -0,0 +1,57 @@ +#ifndef icu4x_CollatorOptionsV1_HPP +#define icu4x_CollatorOptionsV1_HPP + +#include "CollatorOptionsV1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CollatorAlternateHandling.hpp" +#include "CollatorBackwardSecondLevel.hpp" +#include "CollatorCaseFirst.hpp" +#include "CollatorCaseLevel.hpp" +#include "CollatorMaxVariable.hpp" +#include "CollatorNumeric.hpp" +#include "CollatorStrength.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::CollatorOptionsV1 icu4x::CollatorOptionsV1::AsFFI() const { + return icu4x::capi::CollatorOptionsV1 { + /* .strength = */ strength.AsFFI(), + /* .alternate_handling = */ alternate_handling.AsFFI(), + /* .case_first = */ case_first.AsFFI(), + /* .max_variable = */ max_variable.AsFFI(), + /* .case_level = */ case_level.AsFFI(), + /* .numeric = */ numeric.AsFFI(), + /* .backward_second_level = */ backward_second_level.AsFFI(), + }; +} + +inline icu4x::CollatorOptionsV1 icu4x::CollatorOptionsV1::FromFFI(icu4x::capi::CollatorOptionsV1 c_struct) { + return icu4x::CollatorOptionsV1 { + /* .strength = */ icu4x::CollatorStrength::FromFFI(c_struct.strength), + /* .alternate_handling = */ icu4x::CollatorAlternateHandling::FromFFI(c_struct.alternate_handling), + /* .case_first = */ icu4x::CollatorCaseFirst::FromFFI(c_struct.case_first), + /* .max_variable = */ icu4x::CollatorMaxVariable::FromFFI(c_struct.max_variable), + /* .case_level = */ icu4x::CollatorCaseLevel::FromFFI(c_struct.case_level), + /* .numeric = */ icu4x::CollatorNumeric::FromFFI(c_struct.numeric), + /* .backward_second_level = */ icu4x::CollatorBackwardSecondLevel::FromFFI(c_struct.backward_second_level), + }; +} + + +#endif // icu4x_CollatorOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.d.hpp new file mode 100644 index 00000000000..01cf05db28c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_CollatorResolvedOptionsV1_D_HPP +#define icu4x_CollatorResolvedOptionsV1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CollatorAlternateHandling.d.hpp" +#include "CollatorBackwardSecondLevel.d.hpp" +#include "CollatorCaseFirst.d.hpp" +#include "CollatorCaseLevel.d.hpp" +#include "CollatorMaxVariable.d.hpp" +#include "CollatorNumeric.d.hpp" +#include "CollatorStrength.d.hpp" + +namespace icu4x { +class CollatorAlternateHandling; +class CollatorBackwardSecondLevel; +class CollatorCaseFirst; +class CollatorCaseLevel; +class CollatorMaxVariable; +class CollatorNumeric; +class CollatorStrength; +} + + +namespace icu4x { +namespace capi { + struct CollatorResolvedOptionsV1 { + icu4x::capi::CollatorStrength strength; + icu4x::capi::CollatorAlternateHandling alternate_handling; + icu4x::capi::CollatorCaseFirst case_first; + icu4x::capi::CollatorMaxVariable max_variable; + icu4x::capi::CollatorCaseLevel case_level; + icu4x::capi::CollatorNumeric numeric; + icu4x::capi::CollatorBackwardSecondLevel backward_second_level; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct CollatorResolvedOptionsV1 { + icu4x::CollatorStrength strength; + icu4x::CollatorAlternateHandling alternate_handling; + icu4x::CollatorCaseFirst case_first; + icu4x::CollatorMaxVariable max_variable; + icu4x::CollatorCaseLevel case_level; + icu4x::CollatorNumeric numeric; + icu4x::CollatorBackwardSecondLevel backward_second_level; + + inline icu4x::capi::CollatorResolvedOptionsV1 AsFFI() const; + inline static icu4x::CollatorResolvedOptionsV1 FromFFI(icu4x::capi::CollatorResolvedOptionsV1 c_struct); +}; + +} // namespace +#endif // icu4x_CollatorResolvedOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.hpp new file mode 100644 index 00000000000..c49af04ccc9 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorResolvedOptionsV1.hpp @@ -0,0 +1,57 @@ +#ifndef icu4x_CollatorResolvedOptionsV1_HPP +#define icu4x_CollatorResolvedOptionsV1_HPP + +#include "CollatorResolvedOptionsV1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CollatorAlternateHandling.hpp" +#include "CollatorBackwardSecondLevel.hpp" +#include "CollatorCaseFirst.hpp" +#include "CollatorCaseLevel.hpp" +#include "CollatorMaxVariable.hpp" +#include "CollatorNumeric.hpp" +#include "CollatorStrength.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::CollatorResolvedOptionsV1 icu4x::CollatorResolvedOptionsV1::AsFFI() const { + return icu4x::capi::CollatorResolvedOptionsV1 { + /* .strength = */ strength.AsFFI(), + /* .alternate_handling = */ alternate_handling.AsFFI(), + /* .case_first = */ case_first.AsFFI(), + /* .max_variable = */ max_variable.AsFFI(), + /* .case_level = */ case_level.AsFFI(), + /* .numeric = */ numeric.AsFFI(), + /* .backward_second_level = */ backward_second_level.AsFFI(), + }; +} + +inline icu4x::CollatorResolvedOptionsV1 icu4x::CollatorResolvedOptionsV1::FromFFI(icu4x::capi::CollatorResolvedOptionsV1 c_struct) { + return icu4x::CollatorResolvedOptionsV1 { + /* .strength = */ icu4x::CollatorStrength::FromFFI(c_struct.strength), + /* .alternate_handling = */ icu4x::CollatorAlternateHandling::FromFFI(c_struct.alternate_handling), + /* .case_first = */ icu4x::CollatorCaseFirst::FromFFI(c_struct.case_first), + /* .max_variable = */ icu4x::CollatorMaxVariable::FromFFI(c_struct.max_variable), + /* .case_level = */ icu4x::CollatorCaseLevel::FromFFI(c_struct.case_level), + /* .numeric = */ icu4x::CollatorNumeric::FromFFI(c_struct.numeric), + /* .backward_second_level = */ icu4x::CollatorBackwardSecondLevel::FromFFI(c_struct.backward_second_level), + }; +} + + +#endif // icu4x_CollatorResolvedOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/CollatorStrength.d.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorStrength.d.hpp similarity index 72% rename from ffi/capi/bindings/cpp/CollatorStrength.d.hpp rename to ffi/capi/bindings/cpp/icu4x/CollatorStrength.d.hpp index 50baafe0986..8e691591760 100644 --- a/ffi/capi/bindings/cpp/CollatorStrength.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/CollatorStrength.d.hpp @@ -1,5 +1,5 @@ -#ifndef CollatorStrength_D_HPP -#define CollatorStrength_D_HPP +#ifndef icu4x_CollatorStrength_D_HPP +#define icu4x_CollatorStrength_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum CollatorStrength { CollatorStrength_Auto = 0, @@ -23,6 +23,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class CollatorStrength { public: enum Value { @@ -41,11 +42,11 @@ class CollatorStrength { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::CollatorStrength AsFFI() const; - inline static CollatorStrength FromFFI(diplomat::capi::CollatorStrength c_enum); + inline icu4x::capi::CollatorStrength AsFFI() const; + inline static icu4x::CollatorStrength FromFFI(icu4x::capi::CollatorStrength c_enum); private: Value value; }; - -#endif // CollatorStrength_D_HPP +} // namespace +#endif // icu4x_CollatorStrength_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CollatorStrength.hpp b/ffi/capi/bindings/cpp/icu4x/CollatorStrength.hpp new file mode 100644 index 00000000000..d9d61015d51 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CollatorStrength.hpp @@ -0,0 +1,41 @@ +#ifndef icu4x_CollatorStrength_HPP +#define icu4x_CollatorStrength_HPP + +#include "CollatorStrength.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::CollatorStrength icu4x::CollatorStrength::AsFFI() const { + return static_cast<icu4x::capi::CollatorStrength>(value); +} + +inline icu4x::CollatorStrength icu4x::CollatorStrength::FromFFI(icu4x::capi::CollatorStrength c_enum) { + switch (c_enum) { + case icu4x::capi::CollatorStrength_Auto: + case icu4x::capi::CollatorStrength_Primary: + case icu4x::capi::CollatorStrength_Secondary: + case icu4x::capi::CollatorStrength_Tertiary: + case icu4x::capi::CollatorStrength_Quaternary: + case icu4x::capi::CollatorStrength_Identical: + return static_cast<icu4x::CollatorStrength::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_CollatorStrength_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.d.hpp b/ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.d.hpp new file mode 100644 index 00000000000..46820e9afe7 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_ComposingNormalizer_D_HPP +#define icu4x_ComposingNormalizer_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct ComposingNormalizer; } +class ComposingNormalizer; +namespace capi { struct DataProvider; } +class DataProvider; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct ComposingNormalizer; +} // namespace capi +} // namespace + +namespace icu4x { +class ComposingNormalizer { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> create_nfc(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> create_nfkc(const icu4x::DataProvider& provider); + + inline std::string normalize(std::string_view s) const; + + inline bool is_normalized(std::string_view s) const; + + inline bool is_normalized16(std::u16string_view s) const; + + inline size_t is_normalized_up_to(std::string_view s) const; + + inline size_t is_normalized16_up_to(std::u16string_view s) const; + + inline const icu4x::capi::ComposingNormalizer* AsFFI() const; + inline icu4x::capi::ComposingNormalizer* AsFFI(); + inline static const icu4x::ComposingNormalizer* FromFFI(const icu4x::capi::ComposingNormalizer* ptr); + inline static icu4x::ComposingNormalizer* FromFFI(icu4x::capi::ComposingNormalizer* ptr); + inline static void operator delete(void* ptr); +private: + ComposingNormalizer() = delete; + ComposingNormalizer(const icu4x::ComposingNormalizer&) = delete; + ComposingNormalizer(icu4x::ComposingNormalizer&&) noexcept = delete; + ComposingNormalizer operator=(const icu4x::ComposingNormalizer&) = delete; + ComposingNormalizer operator=(icu4x::ComposingNormalizer&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_ComposingNormalizer_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.hpp b/ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.hpp new file mode 100644 index 00000000000..c54c610cfd7 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ComposingNormalizer.hpp @@ -0,0 +1,113 @@ +#ifndef icu4x_ComposingNormalizer_HPP +#define icu4x_ComposingNormalizer_HPP + +#include "ComposingNormalizer.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_ComposingNormalizer_create_nfc_mv1_result {union {icu4x::capi::ComposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfc_mv1_result; + icu4x_ComposingNormalizer_create_nfc_mv1_result icu4x_ComposingNormalizer_create_nfc_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_ComposingNormalizer_create_nfkc_mv1_result {union {icu4x::capi::ComposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfkc_mv1_result; + icu4x_ComposingNormalizer_create_nfkc_mv1_result icu4x_ComposingNormalizer_create_nfkc_mv1(const icu4x::capi::DataProvider* provider); + + void icu4x_ComposingNormalizer_normalize_mv1(const icu4x::capi::ComposingNormalizer* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); + + bool icu4x_ComposingNormalizer_is_normalized_utf8_mv1(const icu4x::capi::ComposingNormalizer* self, const char* s_data, size_t s_len); + + bool icu4x_ComposingNormalizer_is_normalized_utf16_mv1(const icu4x::capi::ComposingNormalizer* self, const char16_t* s_data, size_t s_len); + + size_t icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(const icu4x::capi::ComposingNormalizer* self, const char* s_data, size_t s_len); + + size_t icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(const icu4x::capi::ComposingNormalizer* self, const char16_t* s_data, size_t s_len); + + + void icu4x_ComposingNormalizer_destroy_mv1(ComposingNormalizer* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> icu4x::ComposingNormalizer::create_nfc(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfc_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ComposingNormalizer>>(std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError> icu4x::ComposingNormalizer::create_nfkc(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfkc_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ComposingNormalizer>>(std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ComposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::string icu4x::ComposingNormalizer::normalize(std::string_view s) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_ComposingNormalizer_normalize_mv1(this->AsFFI(), + s.data(), + s.size(), + &write); + return output; +} + +inline bool icu4x::ComposingNormalizer::is_normalized(std::string_view s) const { + auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf8_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline bool icu4x::ComposingNormalizer::is_normalized16(std::u16string_view s) const { + auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf16_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline size_t icu4x::ComposingNormalizer::is_normalized_up_to(std::string_view s) const { + auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline size_t icu4x::ComposingNormalizer::is_normalized16_up_to(std::u16string_view s) const { + auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline const icu4x::capi::ComposingNormalizer* icu4x::ComposingNormalizer::AsFFI() const { + return reinterpret_cast<const icu4x::capi::ComposingNormalizer*>(this); +} + +inline icu4x::capi::ComposingNormalizer* icu4x::ComposingNormalizer::AsFFI() { + return reinterpret_cast<icu4x::capi::ComposingNormalizer*>(this); +} + +inline const icu4x::ComposingNormalizer* icu4x::ComposingNormalizer::FromFFI(const icu4x::capi::ComposingNormalizer* ptr) { + return reinterpret_cast<const icu4x::ComposingNormalizer*>(ptr); +} + +inline icu4x::ComposingNormalizer* icu4x::ComposingNormalizer::FromFFI(icu4x::capi::ComposingNormalizer* ptr) { + return reinterpret_cast<icu4x::ComposingNormalizer*>(ptr); +} + +inline void icu4x::ComposingNormalizer::operator delete(void* ptr) { + icu4x::capi::icu4x_ComposingNormalizer_destroy_mv1(reinterpret_cast<icu4x::capi::ComposingNormalizer*>(ptr)); +} + + +#endif // icu4x_ComposingNormalizer_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CustomTimeZone.d.hpp b/ffi/capi/bindings/cpp/icu4x/CustomTimeZone.d.hpp new file mode 100644 index 00000000000..de656240f78 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CustomTimeZone.d.hpp @@ -0,0 +1,107 @@ +#ifndef icu4x_CustomTimeZone_D_HPP +#define icu4x_CustomTimeZone_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CustomTimeZone; } +class CustomTimeZone; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct MetazoneCalculator; } +class MetazoneCalculator; +namespace capi { struct TimeZoneIdMapper; } +class TimeZoneIdMapper; +struct TimeZoneInvalidIdError; +struct TimeZoneInvalidOffsetError; +} + + +namespace icu4x { +namespace capi { + struct CustomTimeZone; +} // namespace capi +} // namespace + +namespace icu4x { +class CustomTimeZone { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::CustomTimeZone>, icu4x::TimeZoneInvalidOffsetError> from_string(std::string_view s); + + inline static std::unique_ptr<icu4x::CustomTimeZone> empty(); + + inline static std::unique_ptr<icu4x::CustomTimeZone> utc(); + + inline static std::unique_ptr<icu4x::CustomTimeZone> gmt(); + + inline static std::unique_ptr<icu4x::CustomTimeZone> bst(); + + inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidOffsetError> try_set_gmt_offset_seconds(int32_t offset_seconds); + + inline void set_gmt_offset_eighths_of_hour(int8_t offset_eighths_of_hour); + + inline void clear_gmt_offset(); + + inline std::optional<int32_t> gmt_offset_seconds() const; + + inline std::optional<bool> is_gmt_offset_positive() const; + + inline std::optional<bool> is_gmt_offset_zero() const; + + inline std::optional<bool> gmt_offset_has_minutes() const; + + inline std::optional<bool> gmt_offset_has_seconds() const; + + inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError> try_set_time_zone_id(std::string_view id); + + inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError> try_set_iana_time_zone_id(const icu4x::TimeZoneIdMapper& mapper, std::string_view id); + + inline void clear_time_zone_id(); + + inline std::optional<std::string> time_zone_id() const; + + inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError> try_set_metazone_id(std::string_view id); + + inline void clear_metazone_id(); + + inline std::optional<std::string> metazone_id() const; + + inline std::optional<std::monostate> try_set_zone_variant(std::string_view id); + + inline void clear_zone_variant(); + + inline std::optional<std::string> zone_variant() const; + + inline void set_standard_time(); + + inline void set_daylight_time(); + + inline std::optional<bool> is_standard_time() const; + + inline std::optional<bool> is_daylight_time() const; + + inline void maybe_calculate_metazone(const icu4x::MetazoneCalculator& metazone_calculator, const icu4x::IsoDateTime& local_datetime); + + inline const icu4x::capi::CustomTimeZone* AsFFI() const; + inline icu4x::capi::CustomTimeZone* AsFFI(); + inline static const icu4x::CustomTimeZone* FromFFI(const icu4x::capi::CustomTimeZone* ptr); + inline static icu4x::CustomTimeZone* FromFFI(icu4x::capi::CustomTimeZone* ptr); + inline static void operator delete(void* ptr); +private: + CustomTimeZone() = delete; + CustomTimeZone(const icu4x::CustomTimeZone&) = delete; + CustomTimeZone(icu4x::CustomTimeZone&&) noexcept = delete; + CustomTimeZone operator=(const icu4x::CustomTimeZone&) = delete; + CustomTimeZone operator=(icu4x::CustomTimeZone&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_CustomTimeZone_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/CustomTimeZone.hpp b/ffi/capi/bindings/cpp/icu4x/CustomTimeZone.hpp new file mode 100644 index 00000000000..883fd388e7b --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/CustomTimeZone.hpp @@ -0,0 +1,279 @@ +#ifndef icu4x_CustomTimeZone_HPP +#define icu4x_CustomTimeZone_HPP + +#include "CustomTimeZone.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "IsoDateTime.hpp" +#include "MetazoneCalculator.hpp" +#include "TimeZoneIdMapper.hpp" +#include "TimeZoneInvalidIdError.hpp" +#include "TimeZoneInvalidOffsetError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_CustomTimeZone_from_string_mv1_result {union {icu4x::capi::CustomTimeZone* ok; }; bool is_ok;} icu4x_CustomTimeZone_from_string_mv1_result; + icu4x_CustomTimeZone_from_string_mv1_result icu4x_CustomTimeZone_from_string_mv1(const char* s_data, size_t s_len); + + icu4x::capi::CustomTimeZone* icu4x_CustomTimeZone_empty_mv1(void); + + icu4x::capi::CustomTimeZone* icu4x_CustomTimeZone_utc_mv1(void); + + icu4x::capi::CustomTimeZone* icu4x_CustomTimeZone_gmt_mv1(void); + + icu4x::capi::CustomTimeZone* icu4x_CustomTimeZone_bst_mv1(void); + + typedef struct icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1_result; + icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1_result icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1(icu4x::capi::CustomTimeZone* self, int32_t offset_seconds); + + void icu4x_CustomTimeZone_set_gmt_offset_eighths_of_hour_mv1(icu4x::capi::CustomTimeZone* self, int8_t offset_eighths_of_hour); + + void icu4x_CustomTimeZone_clear_gmt_offset_mv1(icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_gmt_offset_seconds_mv1_result {union {int32_t ok; }; bool is_ok;} icu4x_CustomTimeZone_gmt_offset_seconds_mv1_result; + icu4x_CustomTimeZone_gmt_offset_seconds_mv1_result icu4x_CustomTimeZone_gmt_offset_seconds_mv1(const icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_is_gmt_offset_positive_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_gmt_offset_positive_mv1_result; + icu4x_CustomTimeZone_is_gmt_offset_positive_mv1_result icu4x_CustomTimeZone_is_gmt_offset_positive_mv1(const icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_is_gmt_offset_zero_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_gmt_offset_zero_mv1_result; + icu4x_CustomTimeZone_is_gmt_offset_zero_mv1_result icu4x_CustomTimeZone_is_gmt_offset_zero_mv1(const icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1_result; + icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1_result icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1(const icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1_result; + icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1_result icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1(const icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_try_set_time_zone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_time_zone_id_mv1_result; + icu4x_CustomTimeZone_try_set_time_zone_id_mv1_result icu4x_CustomTimeZone_try_set_time_zone_id_mv1(icu4x::capi::CustomTimeZone* self, const char* id_data, size_t id_len); + + typedef struct icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1_result; + icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1_result icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1(icu4x::capi::CustomTimeZone* self, const icu4x::capi::TimeZoneIdMapper* mapper, const char* id_data, size_t id_len); + + void icu4x_CustomTimeZone_clear_time_zone_id_mv1(icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_time_zone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_time_zone_id_mv1_result; + icu4x_CustomTimeZone_time_zone_id_mv1_result icu4x_CustomTimeZone_time_zone_id_mv1(const icu4x::capi::CustomTimeZone* self, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_CustomTimeZone_try_set_metazone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_metazone_id_mv1_result; + icu4x_CustomTimeZone_try_set_metazone_id_mv1_result icu4x_CustomTimeZone_try_set_metazone_id_mv1(icu4x::capi::CustomTimeZone* self, const char* id_data, size_t id_len); + + void icu4x_CustomTimeZone_clear_metazone_id_mv1(icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_metazone_id_mv1_result { bool is_ok;} icu4x_CustomTimeZone_metazone_id_mv1_result; + icu4x_CustomTimeZone_metazone_id_mv1_result icu4x_CustomTimeZone_metazone_id_mv1(const icu4x::capi::CustomTimeZone* self, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_CustomTimeZone_try_set_zone_variant_mv1_result { bool is_ok;} icu4x_CustomTimeZone_try_set_zone_variant_mv1_result; + icu4x_CustomTimeZone_try_set_zone_variant_mv1_result icu4x_CustomTimeZone_try_set_zone_variant_mv1(icu4x::capi::CustomTimeZone* self, const char* id_data, size_t id_len); + + void icu4x_CustomTimeZone_clear_zone_variant_mv1(icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_zone_variant_mv1_result { bool is_ok;} icu4x_CustomTimeZone_zone_variant_mv1_result; + icu4x_CustomTimeZone_zone_variant_mv1_result icu4x_CustomTimeZone_zone_variant_mv1(const icu4x::capi::CustomTimeZone* self, diplomat::capi::DiplomatWrite* write); + + void icu4x_CustomTimeZone_set_standard_time_mv1(icu4x::capi::CustomTimeZone* self); + + void icu4x_CustomTimeZone_set_daylight_time_mv1(icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_is_standard_time_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_standard_time_mv1_result; + icu4x_CustomTimeZone_is_standard_time_mv1_result icu4x_CustomTimeZone_is_standard_time_mv1(const icu4x::capi::CustomTimeZone* self); + + typedef struct icu4x_CustomTimeZone_is_daylight_time_mv1_result {union {bool ok; }; bool is_ok;} icu4x_CustomTimeZone_is_daylight_time_mv1_result; + icu4x_CustomTimeZone_is_daylight_time_mv1_result icu4x_CustomTimeZone_is_daylight_time_mv1(const icu4x::capi::CustomTimeZone* self); + + void icu4x_CustomTimeZone_maybe_calculate_metazone_mv1(icu4x::capi::CustomTimeZone* self, const icu4x::capi::MetazoneCalculator* metazone_calculator, const icu4x::capi::IsoDateTime* local_datetime); + + + void icu4x_CustomTimeZone_destroy_mv1(CustomTimeZone* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::CustomTimeZone>, icu4x::TimeZoneInvalidOffsetError> icu4x::CustomTimeZone::from_string(std::string_view s) { + auto result = icu4x::capi::icu4x_CustomTimeZone_from_string_mv1(s.data(), + s.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::CustomTimeZone>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Ok<std::unique_ptr<icu4x::CustomTimeZone>>(std::unique_ptr<icu4x::CustomTimeZone>(icu4x::CustomTimeZone::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::CustomTimeZone>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Err<icu4x::TimeZoneInvalidOffsetError>(icu4x::TimeZoneInvalidOffsetError {})); +} + +inline std::unique_ptr<icu4x::CustomTimeZone> icu4x::CustomTimeZone::empty() { + auto result = icu4x::capi::icu4x_CustomTimeZone_empty_mv1(); + return std::unique_ptr<icu4x::CustomTimeZone>(icu4x::CustomTimeZone::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CustomTimeZone> icu4x::CustomTimeZone::utc() { + auto result = icu4x::capi::icu4x_CustomTimeZone_utc_mv1(); + return std::unique_ptr<icu4x::CustomTimeZone>(icu4x::CustomTimeZone::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CustomTimeZone> icu4x::CustomTimeZone::gmt() { + auto result = icu4x::capi::icu4x_CustomTimeZone_gmt_mv1(); + return std::unique_ptr<icu4x::CustomTimeZone>(icu4x::CustomTimeZone::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CustomTimeZone> icu4x::CustomTimeZone::bst() { + auto result = icu4x::capi::icu4x_CustomTimeZone_bst_mv1(); + return std::unique_ptr<icu4x::CustomTimeZone>(icu4x::CustomTimeZone::FromFFI(result)); +} + +inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidOffsetError> icu4x::CustomTimeZone::try_set_gmt_offset_seconds(int32_t offset_seconds) { + auto result = icu4x::capi::icu4x_CustomTimeZone_try_set_gmt_offset_seconds_mv1(this->AsFFI(), + offset_seconds); + return result.is_ok ? diplomat::result<std::monostate, icu4x::TimeZoneInvalidOffsetError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::TimeZoneInvalidOffsetError>(diplomat::Err<icu4x::TimeZoneInvalidOffsetError>(icu4x::TimeZoneInvalidOffsetError {})); +} + +inline void icu4x::CustomTimeZone::set_gmt_offset_eighths_of_hour(int8_t offset_eighths_of_hour) { + icu4x::capi::icu4x_CustomTimeZone_set_gmt_offset_eighths_of_hour_mv1(this->AsFFI(), + offset_eighths_of_hour); +} + +inline void icu4x::CustomTimeZone::clear_gmt_offset() { + icu4x::capi::icu4x_CustomTimeZone_clear_gmt_offset_mv1(this->AsFFI()); +} + +inline std::optional<int32_t> icu4x::CustomTimeZone::gmt_offset_seconds() const { + auto result = icu4x::capi::icu4x_CustomTimeZone_gmt_offset_seconds_mv1(this->AsFFI()); + return result.is_ok ? std::optional<int32_t>(result.ok) : std::nullopt; +} + +inline std::optional<bool> icu4x::CustomTimeZone::is_gmt_offset_positive() const { + auto result = icu4x::capi::icu4x_CustomTimeZone_is_gmt_offset_positive_mv1(this->AsFFI()); + return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; +} + +inline std::optional<bool> icu4x::CustomTimeZone::is_gmt_offset_zero() const { + auto result = icu4x::capi::icu4x_CustomTimeZone_is_gmt_offset_zero_mv1(this->AsFFI()); + return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; +} + +inline std::optional<bool> icu4x::CustomTimeZone::gmt_offset_has_minutes() const { + auto result = icu4x::capi::icu4x_CustomTimeZone_gmt_offset_has_minutes_mv1(this->AsFFI()); + return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; +} + +inline std::optional<bool> icu4x::CustomTimeZone::gmt_offset_has_seconds() const { + auto result = icu4x::capi::icu4x_CustomTimeZone_gmt_offset_has_seconds_mv1(this->AsFFI()); + return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; +} + +inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError> icu4x::CustomTimeZone::try_set_time_zone_id(std::string_view id) { + auto result = icu4x::capi::icu4x_CustomTimeZone_try_set_time_zone_id_mv1(this->AsFFI(), + id.data(), + id.size()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {})); +} + +inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError> icu4x::CustomTimeZone::try_set_iana_time_zone_id(const icu4x::TimeZoneIdMapper& mapper, std::string_view id) { + auto result = icu4x::capi::icu4x_CustomTimeZone_try_set_iana_time_zone_id_mv1(this->AsFFI(), + mapper.AsFFI(), + id.data(), + id.size()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {})); +} + +inline void icu4x::CustomTimeZone::clear_time_zone_id() { + icu4x::capi::icu4x_CustomTimeZone_clear_time_zone_id_mv1(this->AsFFI()); +} + +inline std::optional<std::string> icu4x::CustomTimeZone::time_zone_id() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_CustomTimeZone_time_zone_id_mv1(this->AsFFI(), + &write); + return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; +} + +inline diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError> icu4x::CustomTimeZone::try_set_metazone_id(std::string_view id) { + auto result = icu4x::capi::icu4x_CustomTimeZone_try_set_metazone_id_mv1(this->AsFFI(), + id.data(), + id.size()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {})); +} + +inline void icu4x::CustomTimeZone::clear_metazone_id() { + icu4x::capi::icu4x_CustomTimeZone_clear_metazone_id_mv1(this->AsFFI()); +} + +inline std::optional<std::string> icu4x::CustomTimeZone::metazone_id() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_CustomTimeZone_metazone_id_mv1(this->AsFFI(), + &write); + return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; +} + +inline std::optional<std::monostate> icu4x::CustomTimeZone::try_set_zone_variant(std::string_view id) { + auto result = icu4x::capi::icu4x_CustomTimeZone_try_set_zone_variant_mv1(this->AsFFI(), + id.data(), + id.size()); + return result.is_ok ? std::optional<std::monostate>() : std::nullopt; +} + +inline void icu4x::CustomTimeZone::clear_zone_variant() { + icu4x::capi::icu4x_CustomTimeZone_clear_zone_variant_mv1(this->AsFFI()); +} + +inline std::optional<std::string> icu4x::CustomTimeZone::zone_variant() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_CustomTimeZone_zone_variant_mv1(this->AsFFI(), + &write); + return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; +} + +inline void icu4x::CustomTimeZone::set_standard_time() { + icu4x::capi::icu4x_CustomTimeZone_set_standard_time_mv1(this->AsFFI()); +} + +inline void icu4x::CustomTimeZone::set_daylight_time() { + icu4x::capi::icu4x_CustomTimeZone_set_daylight_time_mv1(this->AsFFI()); +} + +inline std::optional<bool> icu4x::CustomTimeZone::is_standard_time() const { + auto result = icu4x::capi::icu4x_CustomTimeZone_is_standard_time_mv1(this->AsFFI()); + return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; +} + +inline std::optional<bool> icu4x::CustomTimeZone::is_daylight_time() const { + auto result = icu4x::capi::icu4x_CustomTimeZone_is_daylight_time_mv1(this->AsFFI()); + return result.is_ok ? std::optional<bool>(result.ok) : std::nullopt; +} + +inline void icu4x::CustomTimeZone::maybe_calculate_metazone(const icu4x::MetazoneCalculator& metazone_calculator, const icu4x::IsoDateTime& local_datetime) { + icu4x::capi::icu4x_CustomTimeZone_maybe_calculate_metazone_mv1(this->AsFFI(), + metazone_calculator.AsFFI(), + local_datetime.AsFFI()); +} + +inline const icu4x::capi::CustomTimeZone* icu4x::CustomTimeZone::AsFFI() const { + return reinterpret_cast<const icu4x::capi::CustomTimeZone*>(this); +} + +inline icu4x::capi::CustomTimeZone* icu4x::CustomTimeZone::AsFFI() { + return reinterpret_cast<icu4x::capi::CustomTimeZone*>(this); +} + +inline const icu4x::CustomTimeZone* icu4x::CustomTimeZone::FromFFI(const icu4x::capi::CustomTimeZone* ptr) { + return reinterpret_cast<const icu4x::CustomTimeZone*>(ptr); +} + +inline icu4x::CustomTimeZone* icu4x::CustomTimeZone::FromFFI(icu4x::capi::CustomTimeZone* ptr) { + return reinterpret_cast<icu4x::CustomTimeZone*>(ptr); +} + +inline void icu4x::CustomTimeZone::operator delete(void* ptr) { + icu4x::capi::icu4x_CustomTimeZone_destroy_mv1(reinterpret_cast<icu4x::capi::CustomTimeZone*>(ptr)); +} + + +#endif // icu4x_CustomTimeZone_HPP diff --git a/ffi/capi/bindings/cpp/DataError.d.hpp b/ffi/capi/bindings/cpp/icu4x/DataError.d.hpp similarity index 77% rename from ffi/capi/bindings/cpp/DataError.d.hpp rename to ffi/capi/bindings/cpp/icu4x/DataError.d.hpp index f9b78f1325f..403ef66e3a4 100644 --- a/ffi/capi/bindings/cpp/DataError.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/DataError.d.hpp @@ -1,5 +1,5 @@ -#ifndef DataError_D_HPP -#define DataError_D_HPP +#ifndef icu4x_DataError_D_HPP +#define icu4x_DataError_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum DataError { DataError_Unknown = 0, @@ -26,6 +26,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class DataError { public: enum Value { @@ -47,11 +48,11 @@ class DataError { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::DataError AsFFI() const; - inline static DataError FromFFI(diplomat::capi::DataError c_enum); + inline icu4x::capi::DataError AsFFI() const; + inline static icu4x::DataError FromFFI(icu4x::capi::DataError c_enum); private: Value value; }; - -#endif // DataError_D_HPP +} // namespace +#endif // icu4x_DataError_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DataError.hpp b/ffi/capi/bindings/cpp/icu4x/DataError.hpp new file mode 100644 index 00000000000..0f82ec219b4 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DataError.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_DataError_HPP +#define icu4x_DataError_HPP + +#include "DataError.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::DataError icu4x::DataError::AsFFI() const { + return static_cast<icu4x::capi::DataError>(value); +} + +inline icu4x::DataError icu4x::DataError::FromFFI(icu4x::capi::DataError c_enum) { + switch (c_enum) { + case icu4x::capi::DataError_Unknown: + case icu4x::capi::DataError_MarkerNotFound: + case icu4x::capi::DataError_IdentifierNotFound: + case icu4x::capi::DataError_InvalidRequest: + case icu4x::capi::DataError_InconsistentData: + case icu4x::capi::DataError_Downcast: + case icu4x::capi::DataError_Deserialize: + case icu4x::capi::DataError_Custom: + case icu4x::capi::DataError_Io: + return static_cast<icu4x::DataError::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_DataError_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DataProvider.d.hpp b/ffi/capi/bindings/cpp/icu4x/DataProvider.d.hpp new file mode 100644 index 00000000000..9bca1b49c01 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DataProvider.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_DataProvider_D_HPP +#define icu4x_DataProvider_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct LocaleFallbacker; } +class LocaleFallbacker; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct DataProvider; +} // namespace capi +} // namespace + +namespace icu4x { +class DataProvider { +public: + + inline static std::unique_ptr<icu4x::DataProvider> compiled(); + + inline static diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> from_fs(std::string_view path); + + inline static diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> from_byte_slice(diplomat::span<const uint8_t> blob); + + inline static std::unique_ptr<icu4x::DataProvider> empty(); + + inline diplomat::result<std::monostate, icu4x::DataError> fork_by_key(icu4x::DataProvider& other); + + inline diplomat::result<std::monostate, icu4x::DataError> fork_by_locale(icu4x::DataProvider& other); + + inline diplomat::result<std::monostate, icu4x::DataError> enable_locale_fallback_with(const icu4x::LocaleFallbacker& fallbacker); + + inline const icu4x::capi::DataProvider* AsFFI() const; + inline icu4x::capi::DataProvider* AsFFI(); + inline static const icu4x::DataProvider* FromFFI(const icu4x::capi::DataProvider* ptr); + inline static icu4x::DataProvider* FromFFI(icu4x::capi::DataProvider* ptr); + inline static void operator delete(void* ptr); +private: + DataProvider() = delete; + DataProvider(const icu4x::DataProvider&) = delete; + DataProvider(icu4x::DataProvider&&) noexcept = delete; + DataProvider operator=(const icu4x::DataProvider&) = delete; + DataProvider operator=(icu4x::DataProvider&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_DataProvider_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DataProvider.hpp b/ffi/capi/bindings/cpp/icu4x/DataProvider.hpp new file mode 100644 index 00000000000..cf59b326375 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DataProvider.hpp @@ -0,0 +1,108 @@ +#ifndef icu4x_DataProvider_HPP +#define icu4x_DataProvider_HPP + +#include "DataProvider.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "LocaleFallbacker.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::DataProvider* icu4x_DataProvider_compiled_mv1(void); + + typedef struct icu4x_DataProvider_from_fs_mv1_result {union {icu4x::capi::DataProvider* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_fs_mv1_result; + icu4x_DataProvider_from_fs_mv1_result icu4x_DataProvider_from_fs_mv1(const char* path_data, size_t path_len); + + typedef struct icu4x_DataProvider_from_byte_slice_mv1_result {union {icu4x::capi::DataProvider* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_byte_slice_mv1_result; + icu4x_DataProvider_from_byte_slice_mv1_result icu4x_DataProvider_from_byte_slice_mv1(const uint8_t* blob_data, size_t blob_len); + + icu4x::capi::DataProvider* icu4x_DataProvider_empty_mv1(void); + + typedef struct icu4x_DataProvider_fork_by_key_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_key_mv1_result; + icu4x_DataProvider_fork_by_key_mv1_result icu4x_DataProvider_fork_by_key_mv1(icu4x::capi::DataProvider* self, icu4x::capi::DataProvider* other); + + typedef struct icu4x_DataProvider_fork_by_locale_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_locale_mv1_result; + icu4x_DataProvider_fork_by_locale_mv1_result icu4x_DataProvider_fork_by_locale_mv1(icu4x::capi::DataProvider* self, icu4x::capi::DataProvider* other); + + typedef struct icu4x_DataProvider_enable_locale_fallback_with_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_enable_locale_fallback_with_mv1_result; + icu4x_DataProvider_enable_locale_fallback_with_mv1_result icu4x_DataProvider_enable_locale_fallback_with_mv1(icu4x::capi::DataProvider* self, const icu4x::capi::LocaleFallbacker* fallbacker); + + + void icu4x_DataProvider_destroy_mv1(DataProvider* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline std::unique_ptr<icu4x::DataProvider> icu4x::DataProvider::compiled() { + auto result = icu4x::capi::icu4x_DataProvider_compiled_mv1(); + return std::unique_ptr<icu4x::DataProvider>(icu4x::DataProvider::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> icu4x::DataProvider::from_fs(std::string_view path) { + auto result = icu4x::capi::icu4x_DataProvider_from_fs_mv1(path.data(), + path.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DataProvider>>(std::unique_ptr<icu4x::DataProvider>(icu4x::DataProvider::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError> icu4x::DataProvider::from_byte_slice(diplomat::span<const uint8_t> blob) { + auto result = icu4x::capi::icu4x_DataProvider_from_byte_slice_mv1(blob.data(), + blob.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DataProvider>>(std::unique_ptr<icu4x::DataProvider>(icu4x::DataProvider::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DataProvider>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::DataProvider> icu4x::DataProvider::empty() { + auto result = icu4x::capi::icu4x_DataProvider_empty_mv1(); + return std::unique_ptr<icu4x::DataProvider>(icu4x::DataProvider::FromFFI(result)); +} + +inline diplomat::result<std::monostate, icu4x::DataError> icu4x::DataProvider::fork_by_key(icu4x::DataProvider& other) { + auto result = icu4x::capi::icu4x_DataProvider_fork_by_key_mv1(this->AsFFI(), + other.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::DataError> icu4x::DataProvider::fork_by_locale(icu4x::DataProvider& other) { + auto result = icu4x::capi::icu4x_DataProvider_fork_by_locale_mv1(this->AsFFI(), + other.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::DataError> icu4x::DataProvider::enable_locale_fallback_with(const icu4x::LocaleFallbacker& fallbacker) { + auto result = icu4x::capi::icu4x_DataProvider_enable_locale_fallback_with_mv1(this->AsFFI(), + fallbacker.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::DataError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline const icu4x::capi::DataProvider* icu4x::DataProvider::AsFFI() const { + return reinterpret_cast<const icu4x::capi::DataProvider*>(this); +} + +inline icu4x::capi::DataProvider* icu4x::DataProvider::AsFFI() { + return reinterpret_cast<icu4x::capi::DataProvider*>(this); +} + +inline const icu4x::DataProvider* icu4x::DataProvider::FromFFI(const icu4x::capi::DataProvider* ptr) { + return reinterpret_cast<const icu4x::DataProvider*>(ptr); +} + +inline icu4x::DataProvider* icu4x::DataProvider::FromFFI(icu4x::capi::DataProvider* ptr) { + return reinterpret_cast<icu4x::DataProvider*>(ptr); +} + +inline void icu4x::DataProvider::operator delete(void* ptr) { + icu4x::capi::icu4x_DataProvider_destroy_mv1(reinterpret_cast<icu4x::capi::DataProvider*>(ptr)); +} + + +#endif // icu4x_DataProvider_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Date.d.hpp b/ffi/capi/bindings/cpp/icu4x/Date.d.hpp new file mode 100644 index 00000000000..91421e7e283 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Date.d.hpp @@ -0,0 +1,89 @@ +#ifndef icu4x_Date_D_HPP +#define icu4x_Date_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Calendar; } +class Calendar; +namespace capi { struct Date; } +class Date; +namespace capi { struct IsoDate; } +class IsoDate; +namespace capi { struct WeekCalculator; } +class WeekCalculator; +struct WeekOf; +class CalendarError; +class CalendarParseError; +class IsoWeekday; +} + + +namespace icu4x { +namespace capi { + struct Date; +} // namespace capi +} // namespace + +namespace icu4x { +class Date { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const icu4x::Calendar& calendar); + + inline static diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const icu4x::Calendar& calendar); + + inline static diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError> from_string(std::string_view v); + + inline std::unique_ptr<icu4x::Date> to_calendar(const icu4x::Calendar& calendar) const; + + inline std::unique_ptr<icu4x::IsoDate> to_iso() const; + + inline uint16_t day_of_year() const; + + inline uint32_t day_of_month() const; + + inline icu4x::IsoWeekday day_of_week() const; + + inline uint32_t week_of_month(icu4x::IsoWeekday first_weekday) const; + + inline icu4x::WeekOf week_of_year(const icu4x::WeekCalculator& calculator) const; + + inline uint32_t ordinal_month() const; + + inline std::string month_code() const; + + inline int32_t year_in_era() const; + + inline std::string era() const; + + inline uint8_t months_in_year() const; + + inline uint8_t days_in_month() const; + + inline uint16_t days_in_year() const; + + inline std::unique_ptr<icu4x::Calendar> calendar() const; + + inline const icu4x::capi::Date* AsFFI() const; + inline icu4x::capi::Date* AsFFI(); + inline static const icu4x::Date* FromFFI(const icu4x::capi::Date* ptr); + inline static icu4x::Date* FromFFI(icu4x::capi::Date* ptr); + inline static void operator delete(void* ptr); +private: + Date() = delete; + Date(const icu4x::Date&) = delete; + Date(icu4x::Date&&) noexcept = delete; + Date operator=(const icu4x::Date&) = delete; + Date operator=(icu4x::Date&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_Date_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Date.hpp b/ffi/capi/bindings/cpp/icu4x/Date.hpp new file mode 100644 index 00000000000..c18b42685cf --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Date.hpp @@ -0,0 +1,202 @@ +#ifndef icu4x_Date_HPP +#define icu4x_Date_HPP + +#include "Date.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "Calendar.hpp" +#include "CalendarError.hpp" +#include "CalendarParseError.hpp" +#include "IsoDate.hpp" +#include "IsoWeekday.hpp" +#include "WeekCalculator.hpp" +#include "WeekOf.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_Date_from_iso_in_calendar_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_iso_in_calendar_mv1_result; + icu4x_Date_from_iso_in_calendar_mv1_result icu4x_Date_from_iso_in_calendar_mv1(int32_t year, uint8_t month, uint8_t day, const icu4x::capi::Calendar* calendar); + + typedef struct icu4x_Date_from_codes_in_calendar_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_codes_in_calendar_mv1_result; + icu4x_Date_from_codes_in_calendar_mv1_result icu4x_Date_from_codes_in_calendar_mv1(const char* era_code_data, size_t era_code_len, int32_t year, const char* month_code_data, size_t month_code_len, uint8_t day, const icu4x::capi::Calendar* calendar); + + typedef struct icu4x_Date_from_string_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_Date_from_string_mv1_result; + icu4x_Date_from_string_mv1_result icu4x_Date_from_string_mv1(const char* v_data, size_t v_len); + + icu4x::capi::Date* icu4x_Date_to_calendar_mv1(const icu4x::capi::Date* self, const icu4x::capi::Calendar* calendar); + + icu4x::capi::IsoDate* icu4x_Date_to_iso_mv1(const icu4x::capi::Date* self); + + uint16_t icu4x_Date_day_of_year_mv1(const icu4x::capi::Date* self); + + uint32_t icu4x_Date_day_of_month_mv1(const icu4x::capi::Date* self); + + icu4x::capi::IsoWeekday icu4x_Date_day_of_week_mv1(const icu4x::capi::Date* self); + + uint32_t icu4x_Date_week_of_month_mv1(const icu4x::capi::Date* self, icu4x::capi::IsoWeekday first_weekday); + + icu4x::capi::WeekOf icu4x_Date_week_of_year_mv1(const icu4x::capi::Date* self, const icu4x::capi::WeekCalculator* calculator); + + uint32_t icu4x_Date_ordinal_month_mv1(const icu4x::capi::Date* self); + + void icu4x_Date_month_code_mv1(const icu4x::capi::Date* self, diplomat::capi::DiplomatWrite* write); + + int32_t icu4x_Date_year_in_era_mv1(const icu4x::capi::Date* self); + + void icu4x_Date_era_mv1(const icu4x::capi::Date* self, diplomat::capi::DiplomatWrite* write); + + uint8_t icu4x_Date_months_in_year_mv1(const icu4x::capi::Date* self); + + uint8_t icu4x_Date_days_in_month_mv1(const icu4x::capi::Date* self); + + uint16_t icu4x_Date_days_in_year_mv1(const icu4x::capi::Date* self); + + icu4x::capi::Calendar* icu4x_Date_calendar_mv1(const icu4x::capi::Date* self); + + + void icu4x_Date_destroy_mv1(Date* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> icu4x::Date::from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const icu4x::Calendar& calendar) { + auto result = icu4x::capi::icu4x_Date_from_iso_in_calendar_mv1(year, + month, + day, + calendar.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> icu4x::Date::from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const icu4x::Calendar& calendar) { + auto result = icu4x::capi::icu4x_Date_from_codes_in_calendar_mv1(era_code.data(), + era_code.size(), + year, + month_code.data(), + month_code.size(), + day, + calendar.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError> icu4x::Date::from_string(std::string_view v) { + auto result = icu4x::capi::icu4x_Date_from_string_mv1(v.data(), + v.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::Date> icu4x::Date::to_calendar(const icu4x::Calendar& calendar) const { + auto result = icu4x::capi::icu4x_Date_to_calendar_mv1(this->AsFFI(), + calendar.AsFFI()); + return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::IsoDate> icu4x::Date::to_iso() const { + auto result = icu4x::capi::icu4x_Date_to_iso_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result)); +} + +inline uint16_t icu4x::Date::day_of_year() const { + auto result = icu4x::capi::icu4x_Date_day_of_year_mv1(this->AsFFI()); + return result; +} + +inline uint32_t icu4x::Date::day_of_month() const { + auto result = icu4x::capi::icu4x_Date_day_of_month_mv1(this->AsFFI()); + return result; +} + +inline icu4x::IsoWeekday icu4x::Date::day_of_week() const { + auto result = icu4x::capi::icu4x_Date_day_of_week_mv1(this->AsFFI()); + return icu4x::IsoWeekday::FromFFI(result); +} + +inline uint32_t icu4x::Date::week_of_month(icu4x::IsoWeekday first_weekday) const { + auto result = icu4x::capi::icu4x_Date_week_of_month_mv1(this->AsFFI(), + first_weekday.AsFFI()); + return result; +} + +inline icu4x::WeekOf icu4x::Date::week_of_year(const icu4x::WeekCalculator& calculator) const { + auto result = icu4x::capi::icu4x_Date_week_of_year_mv1(this->AsFFI(), + calculator.AsFFI()); + return icu4x::WeekOf::FromFFI(result); +} + +inline uint32_t icu4x::Date::ordinal_month() const { + auto result = icu4x::capi::icu4x_Date_ordinal_month_mv1(this->AsFFI()); + return result; +} + +inline std::string icu4x::Date::month_code() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_Date_month_code_mv1(this->AsFFI(), + &write); + return output; +} + +inline int32_t icu4x::Date::year_in_era() const { + auto result = icu4x::capi::icu4x_Date_year_in_era_mv1(this->AsFFI()); + return result; +} + +inline std::string icu4x::Date::era() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_Date_era_mv1(this->AsFFI(), + &write); + return output; +} + +inline uint8_t icu4x::Date::months_in_year() const { + auto result = icu4x::capi::icu4x_Date_months_in_year_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::Date::days_in_month() const { + auto result = icu4x::capi::icu4x_Date_days_in_month_mv1(this->AsFFI()); + return result; +} + +inline uint16_t icu4x::Date::days_in_year() const { + auto result = icu4x::capi::icu4x_Date_days_in_year_mv1(this->AsFFI()); + return result; +} + +inline std::unique_ptr<icu4x::Calendar> icu4x::Date::calendar() const { + auto result = icu4x::capi::icu4x_Date_calendar_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result)); +} + +inline const icu4x::capi::Date* icu4x::Date::AsFFI() const { + return reinterpret_cast<const icu4x::capi::Date*>(this); +} + +inline icu4x::capi::Date* icu4x::Date::AsFFI() { + return reinterpret_cast<icu4x::capi::Date*>(this); +} + +inline const icu4x::Date* icu4x::Date::FromFFI(const icu4x::capi::Date* ptr) { + return reinterpret_cast<const icu4x::Date*>(ptr); +} + +inline icu4x::Date* icu4x::Date::FromFFI(icu4x::capi::Date* ptr) { + return reinterpret_cast<icu4x::Date*>(ptr); +} + +inline void icu4x::Date::operator delete(void* ptr) { + icu4x::capi::icu4x_Date_destroy_mv1(reinterpret_cast<icu4x::capi::Date*>(ptr)); +} + + +#endif // icu4x_Date_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DateFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/DateFormatter.d.hpp new file mode 100644 index 00000000000..2c9200bd83f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DateFormatter.d.hpp @@ -0,0 +1,67 @@ +#ifndef icu4x_DateFormatter_D_HPP +#define icu4x_DateFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Date; } +class Date; +namespace capi { struct DateFormatter; } +class DateFormatter; +namespace capi { struct DateTime; } +class DateTime; +namespace capi { struct IsoDate; } +class IsoDate; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Locale; } +class Locale; +class DateLength; +class Error; +} + + +namespace icu4x { +namespace capi { + struct DateFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class DateFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::Error> create_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length); + + inline diplomat::result<std::string, icu4x::Error> format_date(const icu4x::Date& value) const; + + inline diplomat::result<std::string, icu4x::Error> format_iso_date(const icu4x::IsoDate& value) const; + + inline diplomat::result<std::string, icu4x::Error> format_datetime(const icu4x::DateTime& value) const; + + inline diplomat::result<std::string, icu4x::Error> format_iso_datetime(const icu4x::IsoDateTime& value) const; + + inline const icu4x::capi::DateFormatter* AsFFI() const; + inline icu4x::capi::DateFormatter* AsFFI(); + inline static const icu4x::DateFormatter* FromFFI(const icu4x::capi::DateFormatter* ptr); + inline static icu4x::DateFormatter* FromFFI(icu4x::capi::DateFormatter* ptr); + inline static void operator delete(void* ptr); +private: + DateFormatter() = delete; + DateFormatter(const icu4x::DateFormatter&) = delete; + DateFormatter(icu4x::DateFormatter&&) noexcept = delete; + DateFormatter operator=(const icu4x::DateFormatter&) = delete; + DateFormatter operator=(icu4x::DateFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_DateFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DateFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/DateFormatter.hpp new file mode 100644 index 00000000000..bc584805b7f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DateFormatter.hpp @@ -0,0 +1,113 @@ +#ifndef icu4x_DateFormatter_HPP +#define icu4x_DateFormatter_HPP + +#include "DateFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataProvider.hpp" +#include "Date.hpp" +#include "DateLength.hpp" +#include "DateTime.hpp" +#include "Error.hpp" +#include "IsoDate.hpp" +#include "IsoDateTime.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_DateFormatter_create_with_length_mv1_result {union {icu4x::capi::DateFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_create_with_length_mv1_result; + icu4x_DateFormatter_create_with_length_mv1_result icu4x_DateFormatter_create_with_length_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength date_length); + + typedef struct icu4x_DateFormatter_format_date_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_date_mv1_result; + icu4x_DateFormatter_format_date_mv1_result icu4x_DateFormatter_format_date_mv1(const icu4x::capi::DateFormatter* self, const icu4x::capi::Date* value, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_DateFormatter_format_iso_date_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_iso_date_mv1_result; + icu4x_DateFormatter_format_iso_date_mv1_result icu4x_DateFormatter_format_iso_date_mv1(const icu4x::capi::DateFormatter* self, const icu4x::capi::IsoDate* value, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_DateFormatter_format_datetime_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_datetime_mv1_result; + icu4x_DateFormatter_format_datetime_mv1_result icu4x_DateFormatter_format_datetime_mv1(const icu4x::capi::DateFormatter* self, const icu4x::capi::DateTime* value, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_DateFormatter_format_iso_datetime_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_DateFormatter_format_iso_datetime_mv1_result; + icu4x_DateFormatter_format_iso_datetime_mv1_result icu4x_DateFormatter_format_iso_datetime_mv1(const icu4x::capi::DateFormatter* self, const icu4x::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); + + + void icu4x_DateFormatter_destroy_mv1(DateFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::Error> icu4x::DateFormatter::create_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length) { + auto result = icu4x::capi::icu4x_DateFormatter_create_with_length_mv1(provider.AsFFI(), + locale.AsFFI(), + date_length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatter>>(std::unique_ptr<icu4x::DateFormatter>(icu4x::DateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::DateFormatter::format_date(const icu4x::Date& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_DateFormatter_format_date_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::DateFormatter::format_iso_date(const icu4x::IsoDate& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_DateFormatter_format_iso_date_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::DateFormatter::format_datetime(const icu4x::DateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_DateFormatter_format_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::DateFormatter::format_iso_datetime(const icu4x::IsoDateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_DateFormatter_format_iso_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline const icu4x::capi::DateFormatter* icu4x::DateFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::DateFormatter*>(this); +} + +inline icu4x::capi::DateFormatter* icu4x::DateFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::DateFormatter*>(this); +} + +inline const icu4x::DateFormatter* icu4x::DateFormatter::FromFFI(const icu4x::capi::DateFormatter* ptr) { + return reinterpret_cast<const icu4x::DateFormatter*>(ptr); +} + +inline icu4x::DateFormatter* icu4x::DateFormatter::FromFFI(icu4x::capi::DateFormatter* ptr) { + return reinterpret_cast<icu4x::DateFormatter*>(ptr); +} + +inline void icu4x::DateFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_DateFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::DateFormatter*>(ptr)); +} + + +#endif // icu4x_DateFormatter_HPP diff --git a/ffi/capi/bindings/cpp/DateLength.d.hpp b/ffi/capi/bindings/cpp/icu4x/DateLength.d.hpp similarity index 69% rename from ffi/capi/bindings/cpp/DateLength.d.hpp rename to ffi/capi/bindings/cpp/icu4x/DateLength.d.hpp index 73eed4ff111..cef2f476ec9 100644 --- a/ffi/capi/bindings/cpp/DateLength.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/DateLength.d.hpp @@ -1,5 +1,5 @@ -#ifndef DateLength_D_HPP -#define DateLength_D_HPP +#ifndef icu4x_DateLength_D_HPP +#define icu4x_DateLength_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum DateLength { DateLength_Full = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class DateLength { public: enum Value { @@ -37,11 +38,11 @@ class DateLength { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::DateLength AsFFI() const; - inline static DateLength FromFFI(diplomat::capi::DateLength c_enum); + inline icu4x::capi::DateLength AsFFI() const; + inline static icu4x::DateLength FromFFI(icu4x::capi::DateLength c_enum); private: Value value; }; - -#endif // DateLength_D_HPP +} // namespace +#endif // icu4x_DateLength_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DateLength.hpp b/ffi/capi/bindings/cpp/icu4x/DateLength.hpp new file mode 100644 index 00000000000..8db8ddcf8bd --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DateLength.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_DateLength_HPP +#define icu4x_DateLength_HPP + +#include "DateLength.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::DateLength icu4x::DateLength::AsFFI() const { + return static_cast<icu4x::capi::DateLength>(value); +} + +inline icu4x::DateLength icu4x::DateLength::FromFFI(icu4x::capi::DateLength c_enum) { + switch (c_enum) { + case icu4x::capi::DateLength_Full: + case icu4x::capi::DateLength_Long: + case icu4x::capi::DateLength_Medium: + case icu4x::capi::DateLength_Short: + return static_cast<icu4x::DateLength::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_DateLength_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DateTime.d.hpp b/ffi/capi/bindings/cpp/icu4x/DateTime.d.hpp new file mode 100644 index 00000000000..8abe49daefe --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DateTime.d.hpp @@ -0,0 +1,107 @@ +#ifndef icu4x_DateTime_D_HPP +#define icu4x_DateTime_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Calendar; } +class Calendar; +namespace capi { struct Date; } +class Date; +namespace capi { struct DateTime; } +class DateTime; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Time; } +class Time; +namespace capi { struct WeekCalculator; } +class WeekCalculator; +struct WeekOf; +class CalendarError; +class CalendarParseError; +class IsoWeekday; +} + + +namespace icu4x { +namespace capi { + struct DateTime; +} // namespace capi +} // namespace + +namespace icu4x { +class DateTime { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError> from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const icu4x::Calendar& calendar); + + inline static diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError> from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const icu4x::Calendar& calendar); + + inline static std::unique_ptr<icu4x::DateTime> from_date_and_time(const icu4x::Date& date, const icu4x::Time& time); + + inline static diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarParseError> from_string(std::string_view v); + + inline std::unique_ptr<icu4x::Date> date() const; + + inline std::unique_ptr<icu4x::Time> time() const; + + inline std::unique_ptr<icu4x::IsoDateTime> to_iso() const; + + inline std::unique_ptr<icu4x::DateTime> to_calendar(const icu4x::Calendar& calendar) const; + + inline uint8_t hour() const; + + inline uint8_t minute() const; + + inline uint8_t second() const; + + inline uint32_t nanosecond() const; + + inline uint16_t day_of_year() const; + + inline uint32_t day_of_month() const; + + inline icu4x::IsoWeekday day_of_week() const; + + inline uint32_t week_of_month(icu4x::IsoWeekday first_weekday) const; + + inline icu4x::WeekOf week_of_year(const icu4x::WeekCalculator& calculator) const; + + inline uint32_t ordinal_month() const; + + inline std::string month_code() const; + + inline int32_t year_in_era() const; + + inline std::string era() const; + + inline uint8_t months_in_year() const; + + inline uint8_t days_in_month() const; + + inline uint16_t days_in_year() const; + + inline std::unique_ptr<icu4x::Calendar> calendar() const; + + inline const icu4x::capi::DateTime* AsFFI() const; + inline icu4x::capi::DateTime* AsFFI(); + inline static const icu4x::DateTime* FromFFI(const icu4x::capi::DateTime* ptr); + inline static icu4x::DateTime* FromFFI(icu4x::capi::DateTime* ptr); + inline static void operator delete(void* ptr); +private: + DateTime() = delete; + DateTime(const icu4x::DateTime&) = delete; + DateTime(icu4x::DateTime&&) noexcept = delete; + DateTime operator=(const icu4x::DateTime&) = delete; + DateTime operator=(icu4x::DateTime&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_DateTime_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DateTime.hpp b/ffi/capi/bindings/cpp/icu4x/DateTime.hpp new file mode 100644 index 00000000000..8fb4b618e07 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DateTime.hpp @@ -0,0 +1,262 @@ +#ifndef icu4x_DateTime_HPP +#define icu4x_DateTime_HPP + +#include "DateTime.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "Calendar.hpp" +#include "CalendarError.hpp" +#include "CalendarParseError.hpp" +#include "Date.hpp" +#include "IsoDateTime.hpp" +#include "IsoWeekday.hpp" +#include "Time.hpp" +#include "WeekCalculator.hpp" +#include "WeekOf.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_DateTime_from_iso_in_calendar_mv1_result {union {icu4x::capi::DateTime* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_DateTime_from_iso_in_calendar_mv1_result; + icu4x_DateTime_from_iso_in_calendar_mv1_result icu4x_DateTime_from_iso_in_calendar_mv1(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const icu4x::capi::Calendar* calendar); + + typedef struct icu4x_DateTime_from_codes_in_calendar_mv1_result {union {icu4x::capi::DateTime* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_DateTime_from_codes_in_calendar_mv1_result; + icu4x_DateTime_from_codes_in_calendar_mv1_result icu4x_DateTime_from_codes_in_calendar_mv1(const char* era_code_data, size_t era_code_len, int32_t year, const char* month_code_data, size_t month_code_len, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const icu4x::capi::Calendar* calendar); + + icu4x::capi::DateTime* icu4x_DateTime_from_date_and_time_mv1(const icu4x::capi::Date* date, const icu4x::capi::Time* time); + + typedef struct icu4x_DateTime_from_string_mv1_result {union {icu4x::capi::DateTime* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_DateTime_from_string_mv1_result; + icu4x_DateTime_from_string_mv1_result icu4x_DateTime_from_string_mv1(const char* v_data, size_t v_len); + + icu4x::capi::Date* icu4x_DateTime_date_mv1(const icu4x::capi::DateTime* self); + + icu4x::capi::Time* icu4x_DateTime_time_mv1(const icu4x::capi::DateTime* self); + + icu4x::capi::IsoDateTime* icu4x_DateTime_to_iso_mv1(const icu4x::capi::DateTime* self); + + icu4x::capi::DateTime* icu4x_DateTime_to_calendar_mv1(const icu4x::capi::DateTime* self, const icu4x::capi::Calendar* calendar); + + uint8_t icu4x_DateTime_hour_mv1(const icu4x::capi::DateTime* self); + + uint8_t icu4x_DateTime_minute_mv1(const icu4x::capi::DateTime* self); + + uint8_t icu4x_DateTime_second_mv1(const icu4x::capi::DateTime* self); + + uint32_t icu4x_DateTime_nanosecond_mv1(const icu4x::capi::DateTime* self); + + uint16_t icu4x_DateTime_day_of_year_mv1(const icu4x::capi::DateTime* self); + + uint32_t icu4x_DateTime_day_of_month_mv1(const icu4x::capi::DateTime* self); + + icu4x::capi::IsoWeekday icu4x_DateTime_day_of_week_mv1(const icu4x::capi::DateTime* self); + + uint32_t icu4x_DateTime_week_of_month_mv1(const icu4x::capi::DateTime* self, icu4x::capi::IsoWeekday first_weekday); + + icu4x::capi::WeekOf icu4x_DateTime_week_of_year_mv1(const icu4x::capi::DateTime* self, const icu4x::capi::WeekCalculator* calculator); + + uint32_t icu4x_DateTime_ordinal_month_mv1(const icu4x::capi::DateTime* self); + + void icu4x_DateTime_month_code_mv1(const icu4x::capi::DateTime* self, diplomat::capi::DiplomatWrite* write); + + int32_t icu4x_DateTime_year_in_era_mv1(const icu4x::capi::DateTime* self); + + void icu4x_DateTime_era_mv1(const icu4x::capi::DateTime* self, diplomat::capi::DiplomatWrite* write); + + uint8_t icu4x_DateTime_months_in_year_mv1(const icu4x::capi::DateTime* self); + + uint8_t icu4x_DateTime_days_in_month_mv1(const icu4x::capi::DateTime* self); + + uint16_t icu4x_DateTime_days_in_year_mv1(const icu4x::capi::DateTime* self); + + icu4x::capi::Calendar* icu4x_DateTime_calendar_mv1(const icu4x::capi::DateTime* self); + + + void icu4x_DateTime_destroy_mv1(DateTime* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError> icu4x::DateTime::from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const icu4x::Calendar& calendar) { + auto result = icu4x::capi::icu4x_DateTime_from_iso_in_calendar_mv1(year, + month, + day, + hour, + minute, + second, + nanosecond, + calendar.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::DateTime>>(std::unique_ptr<icu4x::DateTime>(icu4x::DateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError> icu4x::DateTime::from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond, const icu4x::Calendar& calendar) { + auto result = icu4x::capi::icu4x_DateTime_from_codes_in_calendar_mv1(era_code.data(), + era_code.size(), + year, + month_code.data(), + month_code.size(), + day, + hour, + minute, + second, + nanosecond, + calendar.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::DateTime>>(std::unique_ptr<icu4x::DateTime>(icu4x::DateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::DateTime> icu4x::DateTime::from_date_and_time(const icu4x::Date& date, const icu4x::Time& time) { + auto result = icu4x::capi::icu4x_DateTime_from_date_and_time_mv1(date.AsFFI(), + time.AsFFI()); + return std::unique_ptr<icu4x::DateTime>(icu4x::DateTime::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarParseError> icu4x::DateTime::from_string(std::string_view v) { + auto result = icu4x::capi::icu4x_DateTime_from_string_mv1(v.data(), + v.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::DateTime>>(std::unique_ptr<icu4x::DateTime>(icu4x::DateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTime>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::Date> icu4x::DateTime::date() const { + auto result = icu4x::capi::icu4x_DateTime_date_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::Time> icu4x::DateTime::time() const { + auto result = icu4x::capi::icu4x_DateTime_time_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::IsoDateTime> icu4x::DateTime::to_iso() const { + auto result = icu4x::capi::icu4x_DateTime_to_iso_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::DateTime> icu4x::DateTime::to_calendar(const icu4x::Calendar& calendar) const { + auto result = icu4x::capi::icu4x_DateTime_to_calendar_mv1(this->AsFFI(), + calendar.AsFFI()); + return std::unique_ptr<icu4x::DateTime>(icu4x::DateTime::FromFFI(result)); +} + +inline uint8_t icu4x::DateTime::hour() const { + auto result = icu4x::capi::icu4x_DateTime_hour_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::DateTime::minute() const { + auto result = icu4x::capi::icu4x_DateTime_minute_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::DateTime::second() const { + auto result = icu4x::capi::icu4x_DateTime_second_mv1(this->AsFFI()); + return result; +} + +inline uint32_t icu4x::DateTime::nanosecond() const { + auto result = icu4x::capi::icu4x_DateTime_nanosecond_mv1(this->AsFFI()); + return result; +} + +inline uint16_t icu4x::DateTime::day_of_year() const { + auto result = icu4x::capi::icu4x_DateTime_day_of_year_mv1(this->AsFFI()); + return result; +} + +inline uint32_t icu4x::DateTime::day_of_month() const { + auto result = icu4x::capi::icu4x_DateTime_day_of_month_mv1(this->AsFFI()); + return result; +} + +inline icu4x::IsoWeekday icu4x::DateTime::day_of_week() const { + auto result = icu4x::capi::icu4x_DateTime_day_of_week_mv1(this->AsFFI()); + return icu4x::IsoWeekday::FromFFI(result); +} + +inline uint32_t icu4x::DateTime::week_of_month(icu4x::IsoWeekday first_weekday) const { + auto result = icu4x::capi::icu4x_DateTime_week_of_month_mv1(this->AsFFI(), + first_weekday.AsFFI()); + return result; +} + +inline icu4x::WeekOf icu4x::DateTime::week_of_year(const icu4x::WeekCalculator& calculator) const { + auto result = icu4x::capi::icu4x_DateTime_week_of_year_mv1(this->AsFFI(), + calculator.AsFFI()); + return icu4x::WeekOf::FromFFI(result); +} + +inline uint32_t icu4x::DateTime::ordinal_month() const { + auto result = icu4x::capi::icu4x_DateTime_ordinal_month_mv1(this->AsFFI()); + return result; +} + +inline std::string icu4x::DateTime::month_code() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_DateTime_month_code_mv1(this->AsFFI(), + &write); + return output; +} + +inline int32_t icu4x::DateTime::year_in_era() const { + auto result = icu4x::capi::icu4x_DateTime_year_in_era_mv1(this->AsFFI()); + return result; +} + +inline std::string icu4x::DateTime::era() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_DateTime_era_mv1(this->AsFFI(), + &write); + return output; +} + +inline uint8_t icu4x::DateTime::months_in_year() const { + auto result = icu4x::capi::icu4x_DateTime_months_in_year_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::DateTime::days_in_month() const { + auto result = icu4x::capi::icu4x_DateTime_days_in_month_mv1(this->AsFFI()); + return result; +} + +inline uint16_t icu4x::DateTime::days_in_year() const { + auto result = icu4x::capi::icu4x_DateTime_days_in_year_mv1(this->AsFFI()); + return result; +} + +inline std::unique_ptr<icu4x::Calendar> icu4x::DateTime::calendar() const { + auto result = icu4x::capi::icu4x_DateTime_calendar_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result)); +} + +inline const icu4x::capi::DateTime* icu4x::DateTime::AsFFI() const { + return reinterpret_cast<const icu4x::capi::DateTime*>(this); +} + +inline icu4x::capi::DateTime* icu4x::DateTime::AsFFI() { + return reinterpret_cast<icu4x::capi::DateTime*>(this); +} + +inline const icu4x::DateTime* icu4x::DateTime::FromFFI(const icu4x::capi::DateTime* ptr) { + return reinterpret_cast<const icu4x::DateTime*>(ptr); +} + +inline icu4x::DateTime* icu4x::DateTime::FromFFI(icu4x::capi::DateTime* ptr) { + return reinterpret_cast<icu4x::DateTime*>(ptr); +} + +inline void icu4x::DateTime::operator delete(void* ptr) { + icu4x::capi::icu4x_DateTime_destroy_mv1(reinterpret_cast<icu4x::capi::DateTime*>(ptr)); +} + + +#endif // icu4x_DateTime_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.d.hpp new file mode 100644 index 00000000000..f9a3dcca72d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_DateTimeFormatter_D_HPP +#define icu4x_DateTimeFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct DateTime; } +class DateTime; +namespace capi { struct DateTimeFormatter; } +class DateTimeFormatter; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Locale; } +class Locale; +class DateLength; +class Error; +class TimeLength; +} + + +namespace icu4x { +namespace capi { + struct DateTimeFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class DateTimeFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::Error> create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length); + + inline diplomat::result<std::string, icu4x::Error> format_datetime(const icu4x::DateTime& value) const; + + inline diplomat::result<std::string, icu4x::Error> format_iso_datetime(const icu4x::IsoDateTime& value) const; + + inline const icu4x::capi::DateTimeFormatter* AsFFI() const; + inline icu4x::capi::DateTimeFormatter* AsFFI(); + inline static const icu4x::DateTimeFormatter* FromFFI(const icu4x::capi::DateTimeFormatter* ptr); + inline static icu4x::DateTimeFormatter* FromFFI(icu4x::capi::DateTimeFormatter* ptr); + inline static void operator delete(void* ptr); +private: + DateTimeFormatter() = delete; + DateTimeFormatter(const icu4x::DateTimeFormatter&) = delete; + DateTimeFormatter(icu4x::DateTimeFormatter&&) noexcept = delete; + DateTimeFormatter operator=(const icu4x::DateTimeFormatter&) = delete; + DateTimeFormatter operator=(icu4x::DateTimeFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_DateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.hpp new file mode 100644 index 00000000000..8e7a01ed567 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DateTimeFormatter.hpp @@ -0,0 +1,89 @@ +#ifndef icu4x_DateTimeFormatter_HPP +#define icu4x_DateTimeFormatter_HPP + +#include "DateTimeFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataProvider.hpp" +#include "DateLength.hpp" +#include "DateTime.hpp" +#include "Error.hpp" +#include "IsoDateTime.hpp" +#include "Locale.hpp" +#include "TimeLength.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_DateTimeFormatter_create_with_lengths_mv1_result {union {icu4x::capi::DateTimeFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_DateTimeFormatter_create_with_lengths_mv1_result; + icu4x_DateTimeFormatter_create_with_lengths_mv1_result icu4x_DateTimeFormatter_create_with_lengths_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength date_length, icu4x::capi::TimeLength time_length); + + typedef struct icu4x_DateTimeFormatter_format_datetime_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_DateTimeFormatter_format_datetime_mv1_result; + icu4x_DateTimeFormatter_format_datetime_mv1_result icu4x_DateTimeFormatter_format_datetime_mv1(const icu4x::capi::DateTimeFormatter* self, const icu4x::capi::DateTime* value, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_DateTimeFormatter_format_iso_datetime_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_DateTimeFormatter_format_iso_datetime_mv1_result; + icu4x_DateTimeFormatter_format_iso_datetime_mv1_result icu4x_DateTimeFormatter_format_iso_datetime_mv1(const icu4x::capi::DateTimeFormatter* self, const icu4x::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); + + + void icu4x_DateTimeFormatter_destroy_mv1(DateTimeFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::Error> icu4x::DateTimeFormatter::create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length) { + auto result = icu4x::capi::icu4x_DateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), + locale.AsFFI(), + date_length.AsFFI(), + time_length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::DateTimeFormatter>>(std::unique_ptr<icu4x::DateTimeFormatter>(icu4x::DateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateTimeFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::DateTimeFormatter::format_datetime(const icu4x::DateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_DateTimeFormatter_format_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::DateTimeFormatter::format_iso_datetime(const icu4x::IsoDateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_DateTimeFormatter_format_iso_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline const icu4x::capi::DateTimeFormatter* icu4x::DateTimeFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::DateTimeFormatter*>(this); +} + +inline icu4x::capi::DateTimeFormatter* icu4x::DateTimeFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::DateTimeFormatter*>(this); +} + +inline const icu4x::DateTimeFormatter* icu4x::DateTimeFormatter::FromFFI(const icu4x::capi::DateTimeFormatter* ptr) { + return reinterpret_cast<const icu4x::DateTimeFormatter*>(ptr); +} + +inline icu4x::DateTimeFormatter* icu4x::DateTimeFormatter::FromFFI(icu4x::capi::DateTimeFormatter* ptr) { + return reinterpret_cast<icu4x::DateTimeFormatter*>(ptr); +} + +inline void icu4x::DateTimeFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_DateTimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::DateTimeFormatter*>(ptr)); +} + + +#endif // icu4x_DateTimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/Decomposed.d.hpp b/ffi/capi/bindings/cpp/icu4x/Decomposed.d.hpp similarity index 50% rename from ffi/capi/bindings/cpp/Decomposed.d.hpp rename to ffi/capi/bindings/cpp/icu4x/Decomposed.d.hpp index 85bd335d8c3..f711ea145aa 100644 --- a/ffi/capi/bindings/cpp/Decomposed.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/Decomposed.d.hpp @@ -1,5 +1,5 @@ -#ifndef Decomposed_D_HPP -#define Decomposed_D_HPP +#ifndef icu4x_Decomposed_D_HPP +#define icu4x_Decomposed_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { struct Decomposed { char32_t first; @@ -20,13 +20,14 @@ namespace capi { } // namespace +namespace icu4x { struct Decomposed { char32_t first; char32_t second; - inline diplomat::capi::Decomposed AsFFI() const; - inline static Decomposed FromFFI(diplomat::capi::Decomposed c_struct); + inline icu4x::capi::Decomposed AsFFI() const; + inline static icu4x::Decomposed FromFFI(icu4x::capi::Decomposed c_struct); }; - -#endif // Decomposed_D_HPP +} // namespace +#endif // icu4x_Decomposed_D_HPP diff --git a/ffi/capi/bindings/cpp/Decomposed.hpp b/ffi/capi/bindings/cpp/icu4x/Decomposed.hpp similarity index 52% rename from ffi/capi/bindings/cpp/Decomposed.hpp rename to ffi/capi/bindings/cpp/icu4x/Decomposed.hpp index 3ea1fe951cc..d5096681c3b 100644 --- a/ffi/capi/bindings/cpp/Decomposed.hpp +++ b/ffi/capi/bindings/cpp/icu4x/Decomposed.hpp @@ -1,5 +1,5 @@ -#ifndef Decomposed_HPP -#define Decomposed_HPP +#ifndef icu4x_Decomposed_HPP +#define icu4x_Decomposed_HPP #include "Decomposed.d.hpp" @@ -9,10 +9,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { extern "C" { @@ -22,19 +22,19 @@ namespace capi { } // namespace -inline diplomat::capi::Decomposed Decomposed::AsFFI() const { - return diplomat::capi::Decomposed { +inline icu4x::capi::Decomposed icu4x::Decomposed::AsFFI() const { + return icu4x::capi::Decomposed { /* .first = */ first, /* .second = */ second, }; } -inline Decomposed Decomposed::FromFFI(diplomat::capi::Decomposed c_struct) { - return Decomposed { +inline icu4x::Decomposed icu4x::Decomposed::FromFFI(icu4x::capi::Decomposed c_struct) { + return icu4x::Decomposed { /* .first = */ c_struct.first, /* .second = */ c_struct.second, }; } -#endif // Decomposed_HPP +#endif // icu4x_Decomposed_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.d.hpp b/ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.d.hpp new file mode 100644 index 00000000000..99af6ccaa32 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_DecomposingNormalizer_D_HPP +#define icu4x_DecomposingNormalizer_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct DecomposingNormalizer; } +class DecomposingNormalizer; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct DecomposingNormalizer; +} // namespace capi +} // namespace + +namespace icu4x { +class DecomposingNormalizer { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> create_nfd(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> create_nfkd(const icu4x::DataProvider& provider); + + inline std::string normalize(std::string_view s) const; + + inline bool is_normalized(std::string_view s) const; + + inline bool is_normalized_utf16(std::u16string_view s) const; + + inline size_t is_normalized_up_to(std::string_view s) const; + + inline size_t is_normalized_utf16_up_to(std::u16string_view s) const; + + inline const icu4x::capi::DecomposingNormalizer* AsFFI() const; + inline icu4x::capi::DecomposingNormalizer* AsFFI(); + inline static const icu4x::DecomposingNormalizer* FromFFI(const icu4x::capi::DecomposingNormalizer* ptr); + inline static icu4x::DecomposingNormalizer* FromFFI(icu4x::capi::DecomposingNormalizer* ptr); + inline static void operator delete(void* ptr); +private: + DecomposingNormalizer() = delete; + DecomposingNormalizer(const icu4x::DecomposingNormalizer&) = delete; + DecomposingNormalizer(icu4x::DecomposingNormalizer&&) noexcept = delete; + DecomposingNormalizer operator=(const icu4x::DecomposingNormalizer&) = delete; + DecomposingNormalizer operator=(icu4x::DecomposingNormalizer&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_DecomposingNormalizer_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.hpp b/ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.hpp new file mode 100644 index 00000000000..dc755a79694 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DecomposingNormalizer.hpp @@ -0,0 +1,113 @@ +#ifndef icu4x_DecomposingNormalizer_HPP +#define icu4x_DecomposingNormalizer_HPP + +#include "DecomposingNormalizer.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_DecomposingNormalizer_create_nfd_mv1_result {union {icu4x::capi::DecomposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfd_mv1_result; + icu4x_DecomposingNormalizer_create_nfd_mv1_result icu4x_DecomposingNormalizer_create_nfd_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_DecomposingNormalizer_create_nfkd_mv1_result {union {icu4x::capi::DecomposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DecomposingNormalizer_create_nfkd_mv1_result; + icu4x_DecomposingNormalizer_create_nfkd_mv1_result icu4x_DecomposingNormalizer_create_nfkd_mv1(const icu4x::capi::DataProvider* provider); + + void icu4x_DecomposingNormalizer_normalize_mv1(const icu4x::capi::DecomposingNormalizer* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); + + bool icu4x_DecomposingNormalizer_is_normalized_mv1(const icu4x::capi::DecomposingNormalizer* self, const char* s_data, size_t s_len); + + bool icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(const icu4x::capi::DecomposingNormalizer* self, const char16_t* s_data, size_t s_len); + + size_t icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(const icu4x::capi::DecomposingNormalizer* self, const char* s_data, size_t s_len); + + size_t icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(const icu4x::capi::DecomposingNormalizer* self, const char16_t* s_data, size_t s_len); + + + void icu4x_DecomposingNormalizer_destroy_mv1(DecomposingNormalizer* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> icu4x::DecomposingNormalizer::create_nfd(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_DecomposingNormalizer_create_nfd_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DecomposingNormalizer>>(std::unique_ptr<icu4x::DecomposingNormalizer>(icu4x::DecomposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> icu4x::DecomposingNormalizer::create_nfkd(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_DecomposingNormalizer_create_nfkd_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::DecomposingNormalizer>>(std::unique_ptr<icu4x::DecomposingNormalizer>(icu4x::DecomposingNormalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::string icu4x::DecomposingNormalizer::normalize(std::string_view s) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_DecomposingNormalizer_normalize_mv1(this->AsFFI(), + s.data(), + s.size(), + &write); + return output; +} + +inline bool icu4x::DecomposingNormalizer::is_normalized(std::string_view s) const { + auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline bool icu4x::DecomposingNormalizer::is_normalized_utf16(std::u16string_view s) const { + auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_utf16_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline size_t icu4x::DecomposingNormalizer::is_normalized_up_to(std::string_view s) const { + auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_up_to_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline size_t icu4x::DecomposingNormalizer::is_normalized_utf16_up_to(std::u16string_view s) const { + auto result = icu4x::capi::icu4x_DecomposingNormalizer_is_normalized_utf16_up_to_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline const icu4x::capi::DecomposingNormalizer* icu4x::DecomposingNormalizer::AsFFI() const { + return reinterpret_cast<const icu4x::capi::DecomposingNormalizer*>(this); +} + +inline icu4x::capi::DecomposingNormalizer* icu4x::DecomposingNormalizer::AsFFI() { + return reinterpret_cast<icu4x::capi::DecomposingNormalizer*>(this); +} + +inline const icu4x::DecomposingNormalizer* icu4x::DecomposingNormalizer::FromFFI(const icu4x::capi::DecomposingNormalizer* ptr) { + return reinterpret_cast<const icu4x::DecomposingNormalizer*>(ptr); +} + +inline icu4x::DecomposingNormalizer* icu4x::DecomposingNormalizer::FromFFI(icu4x::capi::DecomposingNormalizer* ptr) { + return reinterpret_cast<icu4x::DecomposingNormalizer*>(ptr); +} + +inline void icu4x::DecomposingNormalizer::operator delete(void* ptr) { + icu4x::capi::icu4x_DecomposingNormalizer_destroy_mv1(reinterpret_cast<icu4x::capi::DecomposingNormalizer*>(ptr)); +} + + +#endif // icu4x_DecomposingNormalizer_HPP diff --git a/ffi/capi/bindings/cpp/DisplayNamesFallback.d.hpp b/ffi/capi/bindings/cpp/icu4x/DisplayNamesFallback.d.hpp similarity index 65% rename from ffi/capi/bindings/cpp/DisplayNamesFallback.d.hpp rename to ffi/capi/bindings/cpp/icu4x/DisplayNamesFallback.d.hpp index 0aaaec5bbcf..521b3b2611b 100644 --- a/ffi/capi/bindings/cpp/DisplayNamesFallback.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/DisplayNamesFallback.d.hpp @@ -1,5 +1,5 @@ -#ifndef DisplayNamesFallback_D_HPP -#define DisplayNamesFallback_D_HPP +#ifndef icu4x_DisplayNamesFallback_D_HPP +#define icu4x_DisplayNamesFallback_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum DisplayNamesFallback { DisplayNamesFallback_Code = 0, @@ -19,6 +19,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class DisplayNamesFallback { public: enum Value { @@ -33,11 +34,11 @@ class DisplayNamesFallback { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::DisplayNamesFallback AsFFI() const; - inline static DisplayNamesFallback FromFFI(diplomat::capi::DisplayNamesFallback c_enum); + inline icu4x::capi::DisplayNamesFallback AsFFI() const; + inline static icu4x::DisplayNamesFallback FromFFI(icu4x::capi::DisplayNamesFallback c_enum); private: Value value; }; - -#endif // DisplayNamesFallback_D_HPP +} // namespace +#endif // icu4x_DisplayNamesFallback_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DisplayNamesFallback.hpp b/ffi/capi/bindings/cpp/icu4x/DisplayNamesFallback.hpp new file mode 100644 index 00000000000..ab47c3aaef2 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DisplayNamesFallback.hpp @@ -0,0 +1,37 @@ +#ifndef icu4x_DisplayNamesFallback_HPP +#define icu4x_DisplayNamesFallback_HPP + +#include "DisplayNamesFallback.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::DisplayNamesFallback icu4x::DisplayNamesFallback::AsFFI() const { + return static_cast<icu4x::capi::DisplayNamesFallback>(value); +} + +inline icu4x::DisplayNamesFallback icu4x::DisplayNamesFallback::FromFFI(icu4x::capi::DisplayNamesFallback c_enum) { + switch (c_enum) { + case icu4x::capi::DisplayNamesFallback_Code: + case icu4x::capi::DisplayNamesFallback_None: + return static_cast<icu4x::DisplayNamesFallback::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_DisplayNamesFallback_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.d.hpp b/ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.d.hpp new file mode 100644 index 00000000000..43018f5365f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.d.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_DisplayNamesOptionsV1_D_HPP +#define icu4x_DisplayNamesOptionsV1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DisplayNamesFallback.d.hpp" +#include "DisplayNamesStyle.d.hpp" +#include "LanguageDisplay.d.hpp" + +namespace icu4x { +class DisplayNamesFallback; +class DisplayNamesStyle; +class LanguageDisplay; +} + + +namespace icu4x { +namespace capi { + struct DisplayNamesOptionsV1 { + icu4x::capi::DisplayNamesStyle style; + icu4x::capi::DisplayNamesFallback fallback; + icu4x::capi::LanguageDisplay language_display; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct DisplayNamesOptionsV1 { + icu4x::DisplayNamesStyle style; + icu4x::DisplayNamesFallback fallback; + icu4x::LanguageDisplay language_display; + + inline icu4x::capi::DisplayNamesOptionsV1 AsFFI() const; + inline static icu4x::DisplayNamesOptionsV1 FromFFI(icu4x::capi::DisplayNamesOptionsV1 c_struct); +}; + +} // namespace +#endif // icu4x_DisplayNamesOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.hpp b/ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.hpp new file mode 100644 index 00000000000..d331c639d32 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DisplayNamesOptionsV1.hpp @@ -0,0 +1,45 @@ +#ifndef icu4x_DisplayNamesOptionsV1_HPP +#define icu4x_DisplayNamesOptionsV1_HPP + +#include "DisplayNamesOptionsV1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DisplayNamesFallback.hpp" +#include "DisplayNamesStyle.hpp" +#include "LanguageDisplay.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::DisplayNamesOptionsV1 icu4x::DisplayNamesOptionsV1::AsFFI() const { + return icu4x::capi::DisplayNamesOptionsV1 { + /* .style = */ style.AsFFI(), + /* .fallback = */ fallback.AsFFI(), + /* .language_display = */ language_display.AsFFI(), + }; +} + +inline icu4x::DisplayNamesOptionsV1 icu4x::DisplayNamesOptionsV1::FromFFI(icu4x::capi::DisplayNamesOptionsV1 c_struct) { + return icu4x::DisplayNamesOptionsV1 { + /* .style = */ icu4x::DisplayNamesStyle::FromFFI(c_struct.style), + /* .fallback = */ icu4x::DisplayNamesFallback::FromFFI(c_struct.fallback), + /* .language_display = */ icu4x::LanguageDisplay::FromFFI(c_struct.language_display), + }; +} + + +#endif // icu4x_DisplayNamesOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/DisplayNamesStyle.d.hpp b/ffi/capi/bindings/cpp/icu4x/DisplayNamesStyle.d.hpp similarity index 70% rename from ffi/capi/bindings/cpp/DisplayNamesStyle.d.hpp rename to ffi/capi/bindings/cpp/icu4x/DisplayNamesStyle.d.hpp index f514ed0e848..402a044b0b3 100644 --- a/ffi/capi/bindings/cpp/DisplayNamesStyle.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/DisplayNamesStyle.d.hpp @@ -1,5 +1,5 @@ -#ifndef DisplayNamesStyle_D_HPP -#define DisplayNamesStyle_D_HPP +#ifndef icu4x_DisplayNamesStyle_D_HPP +#define icu4x_DisplayNamesStyle_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum DisplayNamesStyle { DisplayNamesStyle_Auto = 0, @@ -22,6 +22,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class DisplayNamesStyle { public: enum Value { @@ -39,11 +40,11 @@ class DisplayNamesStyle { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::DisplayNamesStyle AsFFI() const; - inline static DisplayNamesStyle FromFFI(diplomat::capi::DisplayNamesStyle c_enum); + inline icu4x::capi::DisplayNamesStyle AsFFI() const; + inline static icu4x::DisplayNamesStyle FromFFI(icu4x::capi::DisplayNamesStyle c_enum); private: Value value; }; - -#endif // DisplayNamesStyle_D_HPP +} // namespace +#endif // icu4x_DisplayNamesStyle_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/DisplayNamesStyle.hpp b/ffi/capi/bindings/cpp/icu4x/DisplayNamesStyle.hpp new file mode 100644 index 00000000000..7cef65b1bf2 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/DisplayNamesStyle.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_DisplayNamesStyle_HPP +#define icu4x_DisplayNamesStyle_HPP + +#include "DisplayNamesStyle.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::DisplayNamesStyle icu4x::DisplayNamesStyle::AsFFI() const { + return static_cast<icu4x::capi::DisplayNamesStyle>(value); +} + +inline icu4x::DisplayNamesStyle icu4x::DisplayNamesStyle::FromFFI(icu4x::capi::DisplayNamesStyle c_enum) { + switch (c_enum) { + case icu4x::capi::DisplayNamesStyle_Auto: + case icu4x::capi::DisplayNamesStyle_Narrow: + case icu4x::capi::DisplayNamesStyle_Short: + case icu4x::capi::DisplayNamesStyle_Long: + case icu4x::capi::DisplayNamesStyle_Menu: + return static_cast<icu4x::DisplayNamesStyle::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_DisplayNamesStyle_HPP diff --git a/ffi/capi/bindings/cpp/Error.d.hpp b/ffi/capi/bindings/cpp/icu4x/Error.d.hpp similarity index 88% rename from ffi/capi/bindings/cpp/Error.d.hpp rename to ffi/capi/bindings/cpp/icu4x/Error.d.hpp index dcf00467500..9d743c84686 100644 --- a/ffi/capi/bindings/cpp/Error.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/Error.d.hpp @@ -1,5 +1,5 @@ -#ifndef Error_D_HPP -#define Error_D_HPP +#ifndef icu4x_Error_D_HPP +#define icu4x_Error_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum Error { Error_UnknownError = 0, @@ -37,6 +37,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class Error { public: enum Value { @@ -69,11 +70,11 @@ class Error { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::Error AsFFI() const; - inline static Error FromFFI(diplomat::capi::Error c_enum); + inline icu4x::capi::Error AsFFI() const; + inline static icu4x::Error FromFFI(icu4x::capi::Error c_enum); private: Value value; }; - -#endif // Error_D_HPP +} // namespace +#endif // icu4x_Error_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Error.hpp b/ffi/capi/bindings/cpp/icu4x/Error.hpp new file mode 100644 index 00000000000..3e4eef5e3c4 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Error.hpp @@ -0,0 +1,55 @@ +#ifndef icu4x_Error_HPP +#define icu4x_Error_HPP + +#include "Error.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::Error icu4x::Error::AsFFI() const { + return static_cast<icu4x::capi::Error>(value); +} + +inline icu4x::Error icu4x::Error::FromFFI(icu4x::capi::Error c_enum) { + switch (c_enum) { + case icu4x::capi::Error_UnknownError: + case icu4x::capi::Error_DataMissingDataMarkerError: + case icu4x::capi::Error_DataMissingLocaleError: + case icu4x::capi::Error_DataNeedsLocaleError: + case icu4x::capi::Error_DataExtraneousLocaleError: + case icu4x::capi::Error_DataFilteredResourceError: + case icu4x::capi::Error_DataMismatchedTypeError: + case icu4x::capi::Error_DataCustomError: + case icu4x::capi::Error_DataIoError: + case icu4x::capi::Error_DataUnavailableBufferFormatError: + case icu4x::capi::Error_PropertyUnexpectedPropertyNameError: + case icu4x::capi::Error_DateTimePatternError: + case icu4x::capi::Error_DateTimeMissingInputFieldError: + case icu4x::capi::Error_DateTimeSkeletonError: + case icu4x::capi::Error_DateTimeUnsupportedFieldError: + case icu4x::capi::Error_DateTimeUnsupportedOptionsError: + case icu4x::capi::Error_DateTimeMissingWeekdaySymbolError: + case icu4x::capi::Error_DateTimeMissingMonthSymbolError: + case icu4x::capi::Error_DateTimeFixedDecimalError: + case icu4x::capi::Error_DateTimeMismatchedCalendarError: + return static_cast<icu4x::Error::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_Error_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimal.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimal.d.hpp new file mode 100644 index 00000000000..af4ede36289 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimal.d.hpp @@ -0,0 +1,115 @@ +#ifndef icu4x_FixedDecimal_D_HPP +#define icu4x_FixedDecimal_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct FixedDecimal; } +class FixedDecimal; +struct FixedDecimalLimitError; +class FixedDecimalParseError; +class FixedDecimalRoundingIncrement; +class FixedDecimalRoundingMode; +class FixedDecimalSign; +class FixedDecimalSignDisplay; +} + + +namespace icu4x { +namespace capi { + struct FixedDecimal; +} // namespace capi +} // namespace + +namespace icu4x { +class FixedDecimal { +public: + + inline static std::unique_ptr<icu4x::FixedDecimal> from(int32_t v); + + inline static std::unique_ptr<icu4x::FixedDecimal> from(uint32_t v); + + inline static std::unique_ptr<icu4x::FixedDecimal> from(int64_t v); + + inline static std::unique_ptr<icu4x::FixedDecimal> from(uint64_t v); + + inline static diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> from_double_with_integer_precision(double f); + + inline static diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> from_double_with_lower_magnitude(double f, int16_t magnitude); + + inline static diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> from_double_with_significant_digits(double f, uint8_t digits); + + inline static diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> from_double_with_floating_precision(double f); + + inline static diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalParseError> from_string(std::string_view v); + + inline uint8_t digit_at(int16_t magnitude) const; + + inline int16_t magnitude_start() const; + + inline int16_t magnitude_end() const; + + inline int16_t nonzero_magnitude_start() const; + + inline int16_t nonzero_magnitude_end() const; + + inline bool is_zero() const; + + inline void multiply_pow10(int16_t power); + + inline icu4x::FixedDecimalSign sign() const; + + inline void set_sign(icu4x::FixedDecimalSign sign); + + inline void apply_sign_display(icu4x::FixedDecimalSignDisplay sign_display); + + inline void trim_start(); + + inline void trim_end(); + + inline void pad_start(int16_t position); + + inline void pad_end(int16_t position); + + inline void set_max_position(int16_t position); + + inline void round(int16_t position); + + inline void ceil(int16_t position); + + inline void expand(int16_t position); + + inline void floor(int16_t position); + + inline void trunc(int16_t position); + + inline void round_with_mode(int16_t position, icu4x::FixedDecimalRoundingMode mode); + + inline void round_with_mode_and_increment(int16_t position, icu4x::FixedDecimalRoundingMode mode, icu4x::FixedDecimalRoundingIncrement increment); + + inline diplomat::result<std::monostate, std::monostate> concatenate_end(icu4x::FixedDecimal& other); + + inline std::string to_string() const; + + inline const icu4x::capi::FixedDecimal* AsFFI() const; + inline icu4x::capi::FixedDecimal* AsFFI(); + inline static const icu4x::FixedDecimal* FromFFI(const icu4x::capi::FixedDecimal* ptr); + inline static icu4x::FixedDecimal* FromFFI(icu4x::capi::FixedDecimal* ptr); + inline static void operator delete(void* ptr); +private: + FixedDecimal() = delete; + FixedDecimal(const icu4x::FixedDecimal&) = delete; + FixedDecimal(icu4x::FixedDecimal&&) noexcept = delete; + FixedDecimal operator=(const icu4x::FixedDecimal&) = delete; + FixedDecimal operator=(icu4x::FixedDecimal&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_FixedDecimal_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimal.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimal.hpp new file mode 100644 index 00000000000..65db2646618 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimal.hpp @@ -0,0 +1,299 @@ +#ifndef icu4x_FixedDecimal_HPP +#define icu4x_FixedDecimal_HPP + +#include "FixedDecimal.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "FixedDecimalLimitError.hpp" +#include "FixedDecimalParseError.hpp" +#include "FixedDecimalRoundingIncrement.hpp" +#include "FixedDecimalRoundingMode.hpp" +#include "FixedDecimalSign.hpp" +#include "FixedDecimalSignDisplay.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::FixedDecimal* icu4x_FixedDecimal_from_int32_mv1(int32_t v); + + icu4x::capi::FixedDecimal* icu4x_FixedDecimal_from_uint32_mv1(uint32_t v); + + icu4x::capi::FixedDecimal* icu4x_FixedDecimal_from_int64_mv1(int64_t v); + + icu4x::capi::FixedDecimal* icu4x_FixedDecimal_from_uint64_mv1(uint64_t v); + + typedef struct icu4x_FixedDecimal_from_double_with_integer_precision_mv1_result {union {icu4x::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_integer_precision_mv1_result; + icu4x_FixedDecimal_from_double_with_integer_precision_mv1_result icu4x_FixedDecimal_from_double_with_integer_precision_mv1(double f); + + typedef struct icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1_result {union {icu4x::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1_result; + icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1_result icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1(double f, int16_t magnitude); + + typedef struct icu4x_FixedDecimal_from_double_with_significant_digits_mv1_result {union {icu4x::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_significant_digits_mv1_result; + icu4x_FixedDecimal_from_double_with_significant_digits_mv1_result icu4x_FixedDecimal_from_double_with_significant_digits_mv1(double f, uint8_t digits); + + typedef struct icu4x_FixedDecimal_from_double_with_floating_precision_mv1_result {union {icu4x::capi::FixedDecimal* ok; }; bool is_ok;} icu4x_FixedDecimal_from_double_with_floating_precision_mv1_result; + icu4x_FixedDecimal_from_double_with_floating_precision_mv1_result icu4x_FixedDecimal_from_double_with_floating_precision_mv1(double f); + + typedef struct icu4x_FixedDecimal_from_string_mv1_result {union {icu4x::capi::FixedDecimal* ok; icu4x::capi::FixedDecimalParseError err;}; bool is_ok;} icu4x_FixedDecimal_from_string_mv1_result; + icu4x_FixedDecimal_from_string_mv1_result icu4x_FixedDecimal_from_string_mv1(const char* v_data, size_t v_len); + + uint8_t icu4x_FixedDecimal_digit_at_mv1(const icu4x::capi::FixedDecimal* self, int16_t magnitude); + + int16_t icu4x_FixedDecimal_magnitude_start_mv1(const icu4x::capi::FixedDecimal* self); + + int16_t icu4x_FixedDecimal_magnitude_end_mv1(const icu4x::capi::FixedDecimal* self); + + int16_t icu4x_FixedDecimal_nonzero_magnitude_start_mv1(const icu4x::capi::FixedDecimal* self); + + int16_t icu4x_FixedDecimal_nonzero_magnitude_end_mv1(const icu4x::capi::FixedDecimal* self); + + bool icu4x_FixedDecimal_is_zero_mv1(const icu4x::capi::FixedDecimal* self); + + void icu4x_FixedDecimal_multiply_pow10_mv1(icu4x::capi::FixedDecimal* self, int16_t power); + + icu4x::capi::FixedDecimalSign icu4x_FixedDecimal_sign_mv1(const icu4x::capi::FixedDecimal* self); + + void icu4x_FixedDecimal_set_sign_mv1(icu4x::capi::FixedDecimal* self, icu4x::capi::FixedDecimalSign sign); + + void icu4x_FixedDecimal_apply_sign_display_mv1(icu4x::capi::FixedDecimal* self, icu4x::capi::FixedDecimalSignDisplay sign_display); + + void icu4x_FixedDecimal_trim_start_mv1(icu4x::capi::FixedDecimal* self); + + void icu4x_FixedDecimal_trim_end_mv1(icu4x::capi::FixedDecimal* self); + + void icu4x_FixedDecimal_pad_start_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_pad_end_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_set_max_position_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_round_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_ceil_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_expand_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_floor_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_trunc_mv1(icu4x::capi::FixedDecimal* self, int16_t position); + + void icu4x_FixedDecimal_round_with_mode_mv1(icu4x::capi::FixedDecimal* self, int16_t position, icu4x::capi::FixedDecimalRoundingMode mode); + + void icu4x_FixedDecimal_round_with_mode_and_increment_mv1(icu4x::capi::FixedDecimal* self, int16_t position, icu4x::capi::FixedDecimalRoundingMode mode, icu4x::capi::FixedDecimalRoundingIncrement increment); + + typedef struct icu4x_FixedDecimal_concatenate_end_mv1_result { bool is_ok;} icu4x_FixedDecimal_concatenate_end_mv1_result; + icu4x_FixedDecimal_concatenate_end_mv1_result icu4x_FixedDecimal_concatenate_end_mv1(icu4x::capi::FixedDecimal* self, icu4x::capi::FixedDecimal* other); + + void icu4x_FixedDecimal_to_string_mv1(const icu4x::capi::FixedDecimal* self, diplomat::capi::DiplomatWrite* write); + + + void icu4x_FixedDecimal_destroy_mv1(FixedDecimal* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline std::unique_ptr<icu4x::FixedDecimal> icu4x::FixedDecimal::from(int32_t v) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_int32_mv1(v); + return std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::FixedDecimal> icu4x::FixedDecimal::from(uint32_t v) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_uint32_mv1(v); + return std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::FixedDecimal> icu4x::FixedDecimal::from(int64_t v) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_int64_mv1(v); + return std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::FixedDecimal> icu4x::FixedDecimal::from(uint64_t v) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_uint64_mv1(v); + return std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> icu4x::FixedDecimal::from_double_with_integer_precision(double f) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_double_with_integer_precision_mv1(f); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::FixedDecimal>>(std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {})); +} + +inline diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> icu4x::FixedDecimal::from_double_with_lower_magnitude(double f, int16_t magnitude) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_double_with_lower_magnitude_mv1(f, + magnitude); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::FixedDecimal>>(std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {})); +} + +inline diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> icu4x::FixedDecimal::from_double_with_significant_digits(double f, uint8_t digits) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_double_with_significant_digits_mv1(f, + digits); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::FixedDecimal>>(std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {})); +} + +inline diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError> icu4x::FixedDecimal::from_double_with_floating_precision(double f) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_double_with_floating_precision_mv1(f); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Ok<std::unique_ptr<icu4x::FixedDecimal>>(std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalLimitError>(diplomat::Err<icu4x::FixedDecimalLimitError>(icu4x::FixedDecimalLimitError {})); +} + +inline diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalParseError> icu4x::FixedDecimal::from_string(std::string_view v) { + auto result = icu4x::capi::icu4x_FixedDecimal_from_string_mv1(v.data(), + v.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalParseError>(diplomat::Ok<std::unique_ptr<icu4x::FixedDecimal>>(std::unique_ptr<icu4x::FixedDecimal>(icu4x::FixedDecimal::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::FixedDecimal>, icu4x::FixedDecimalParseError>(diplomat::Err<icu4x::FixedDecimalParseError>(icu4x::FixedDecimalParseError::FromFFI(result.err))); +} + +inline uint8_t icu4x::FixedDecimal::digit_at(int16_t magnitude) const { + auto result = icu4x::capi::icu4x_FixedDecimal_digit_at_mv1(this->AsFFI(), + magnitude); + return result; +} + +inline int16_t icu4x::FixedDecimal::magnitude_start() const { + auto result = icu4x::capi::icu4x_FixedDecimal_magnitude_start_mv1(this->AsFFI()); + return result; +} + +inline int16_t icu4x::FixedDecimal::magnitude_end() const { + auto result = icu4x::capi::icu4x_FixedDecimal_magnitude_end_mv1(this->AsFFI()); + return result; +} + +inline int16_t icu4x::FixedDecimal::nonzero_magnitude_start() const { + auto result = icu4x::capi::icu4x_FixedDecimal_nonzero_magnitude_start_mv1(this->AsFFI()); + return result; +} + +inline int16_t icu4x::FixedDecimal::nonzero_magnitude_end() const { + auto result = icu4x::capi::icu4x_FixedDecimal_nonzero_magnitude_end_mv1(this->AsFFI()); + return result; +} + +inline bool icu4x::FixedDecimal::is_zero() const { + auto result = icu4x::capi::icu4x_FixedDecimal_is_zero_mv1(this->AsFFI()); + return result; +} + +inline void icu4x::FixedDecimal::multiply_pow10(int16_t power) { + icu4x::capi::icu4x_FixedDecimal_multiply_pow10_mv1(this->AsFFI(), + power); +} + +inline icu4x::FixedDecimalSign icu4x::FixedDecimal::sign() const { + auto result = icu4x::capi::icu4x_FixedDecimal_sign_mv1(this->AsFFI()); + return icu4x::FixedDecimalSign::FromFFI(result); +} + +inline void icu4x::FixedDecimal::set_sign(icu4x::FixedDecimalSign sign) { + icu4x::capi::icu4x_FixedDecimal_set_sign_mv1(this->AsFFI(), + sign.AsFFI()); +} + +inline void icu4x::FixedDecimal::apply_sign_display(icu4x::FixedDecimalSignDisplay sign_display) { + icu4x::capi::icu4x_FixedDecimal_apply_sign_display_mv1(this->AsFFI(), + sign_display.AsFFI()); +} + +inline void icu4x::FixedDecimal::trim_start() { + icu4x::capi::icu4x_FixedDecimal_trim_start_mv1(this->AsFFI()); +} + +inline void icu4x::FixedDecimal::trim_end() { + icu4x::capi::icu4x_FixedDecimal_trim_end_mv1(this->AsFFI()); +} + +inline void icu4x::FixedDecimal::pad_start(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_pad_start_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::pad_end(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_pad_end_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::set_max_position(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_set_max_position_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::round(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_round_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::ceil(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_ceil_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::expand(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_expand_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::floor(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_floor_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::trunc(int16_t position) { + icu4x::capi::icu4x_FixedDecimal_trunc_mv1(this->AsFFI(), + position); +} + +inline void icu4x::FixedDecimal::round_with_mode(int16_t position, icu4x::FixedDecimalRoundingMode mode) { + icu4x::capi::icu4x_FixedDecimal_round_with_mode_mv1(this->AsFFI(), + position, + mode.AsFFI()); +} + +inline void icu4x::FixedDecimal::round_with_mode_and_increment(int16_t position, icu4x::FixedDecimalRoundingMode mode, icu4x::FixedDecimalRoundingIncrement increment) { + icu4x::capi::icu4x_FixedDecimal_round_with_mode_and_increment_mv1(this->AsFFI(), + position, + mode.AsFFI(), + increment.AsFFI()); +} + +inline diplomat::result<std::monostate, std::monostate> icu4x::FixedDecimal::concatenate_end(icu4x::FixedDecimal& other) { + auto result = icu4x::capi::icu4x_FixedDecimal_concatenate_end_mv1(this->AsFFI(), + other.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, std::monostate>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, std::monostate>(diplomat::Err<std::monostate>()); +} + +inline std::string icu4x::FixedDecimal::to_string() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_FixedDecimal_to_string_mv1(this->AsFFI(), + &write); + return output; +} + +inline const icu4x::capi::FixedDecimal* icu4x::FixedDecimal::AsFFI() const { + return reinterpret_cast<const icu4x::capi::FixedDecimal*>(this); +} + +inline icu4x::capi::FixedDecimal* icu4x::FixedDecimal::AsFFI() { + return reinterpret_cast<icu4x::capi::FixedDecimal*>(this); +} + +inline const icu4x::FixedDecimal* icu4x::FixedDecimal::FromFFI(const icu4x::capi::FixedDecimal* ptr) { + return reinterpret_cast<const icu4x::FixedDecimal*>(ptr); +} + +inline icu4x::FixedDecimal* icu4x::FixedDecimal::FromFFI(icu4x::capi::FixedDecimal* ptr) { + return reinterpret_cast<icu4x::FixedDecimal*>(ptr); +} + +inline void icu4x::FixedDecimal::operator delete(void* ptr) { + icu4x::capi::icu4x_FixedDecimal_destroy_mv1(reinterpret_cast<icu4x::capi::FixedDecimal*>(ptr)); +} + + +#endif // icu4x_FixedDecimal_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.d.hpp new file mode 100644 index 00000000000..7ec058176f9 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.d.hpp @@ -0,0 +1,57 @@ +#ifndef icu4x_FixedDecimalFormatter_D_HPP +#define icu4x_FixedDecimalFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct FixedDecimal; } +class FixedDecimal; +namespace capi { struct FixedDecimalFormatter; } +class FixedDecimalFormatter; +namespace capi { struct Locale; } +class Locale; +class DataError; +class FixedDecimalGroupingStrategy; +} + + +namespace icu4x { +namespace capi { + struct FixedDecimalFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class FixedDecimalFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError> create_with_grouping_strategy(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::FixedDecimalGroupingStrategy grouping_strategy); + + inline static diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError> create_with_manual_data(std::string_view plus_sign_prefix, std::string_view plus_sign_suffix, std::string_view minus_sign_prefix, std::string_view minus_sign_suffix, std::string_view decimal_separator, std::string_view grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, diplomat::span<const char32_t> digits, icu4x::FixedDecimalGroupingStrategy grouping_strategy); + + inline std::string format(const icu4x::FixedDecimal& value) const; + + inline const icu4x::capi::FixedDecimalFormatter* AsFFI() const; + inline icu4x::capi::FixedDecimalFormatter* AsFFI(); + inline static const icu4x::FixedDecimalFormatter* FromFFI(const icu4x::capi::FixedDecimalFormatter* ptr); + inline static icu4x::FixedDecimalFormatter* FromFFI(icu4x::capi::FixedDecimalFormatter* ptr); + inline static void operator delete(void* ptr); +private: + FixedDecimalFormatter() = delete; + FixedDecimalFormatter(const icu4x::FixedDecimalFormatter&) = delete; + FixedDecimalFormatter(icu4x::FixedDecimalFormatter&&) noexcept = delete; + FixedDecimalFormatter operator=(const icu4x::FixedDecimalFormatter&) = delete; + FixedDecimalFormatter operator=(icu4x::FixedDecimalFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_FixedDecimalFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.hpp new file mode 100644 index 00000000000..f897c44f682 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalFormatter.hpp @@ -0,0 +1,98 @@ +#ifndef icu4x_FixedDecimalFormatter_HPP +#define icu4x_FixedDecimalFormatter_HPP + +#include "FixedDecimalFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "FixedDecimal.hpp" +#include "FixedDecimalGroupingStrategy.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1_result {union {icu4x::capi::FixedDecimalFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1_result; + icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1_result icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::FixedDecimalGroupingStrategy grouping_strategy); + + typedef struct icu4x_FixedDecimalFormatter_create_with_manual_data_mv1_result {union {icu4x::capi::FixedDecimalFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_FixedDecimalFormatter_create_with_manual_data_mv1_result; + icu4x_FixedDecimalFormatter_create_with_manual_data_mv1_result icu4x_FixedDecimalFormatter_create_with_manual_data_mv1(const char* plus_sign_prefix_data, size_t plus_sign_prefix_len, const char* plus_sign_suffix_data, size_t plus_sign_suffix_len, const char* minus_sign_prefix_data, size_t minus_sign_prefix_len, const char* minus_sign_suffix_data, size_t minus_sign_suffix_len, const char* decimal_separator_data, size_t decimal_separator_len, const char* grouping_separator_data, size_t grouping_separator_len, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, const char32_t* digits_data, size_t digits_len, icu4x::capi::FixedDecimalGroupingStrategy grouping_strategy); + + void icu4x_FixedDecimalFormatter_format_mv1(const icu4x::capi::FixedDecimalFormatter* self, const icu4x::capi::FixedDecimal* value, diplomat::capi::DiplomatWrite* write); + + + void icu4x_FixedDecimalFormatter_destroy_mv1(FixedDecimalFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError> icu4x::FixedDecimalFormatter::create_with_grouping_strategy(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::FixedDecimalGroupingStrategy grouping_strategy) { + auto result = icu4x::capi::icu4x_FixedDecimalFormatter_create_with_grouping_strategy_mv1(provider.AsFFI(), + locale.AsFFI(), + grouping_strategy.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::FixedDecimalFormatter>>(std::unique_ptr<icu4x::FixedDecimalFormatter>(icu4x::FixedDecimalFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError> icu4x::FixedDecimalFormatter::create_with_manual_data(std::string_view plus_sign_prefix, std::string_view plus_sign_suffix, std::string_view minus_sign_prefix, std::string_view minus_sign_suffix, std::string_view decimal_separator, std::string_view grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, diplomat::span<const char32_t> digits, icu4x::FixedDecimalGroupingStrategy grouping_strategy) { + auto result = icu4x::capi::icu4x_FixedDecimalFormatter_create_with_manual_data_mv1(plus_sign_prefix.data(), + plus_sign_prefix.size(), + plus_sign_suffix.data(), + plus_sign_suffix.size(), + minus_sign_prefix.data(), + minus_sign_prefix.size(), + minus_sign_suffix.data(), + minus_sign_suffix.size(), + decimal_separator.data(), + decimal_separator.size(), + grouping_separator.data(), + grouping_separator.size(), + primary_group_size, + secondary_group_size, + min_group_size, + digits.data(), + digits.size(), + grouping_strategy.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::FixedDecimalFormatter>>(std::unique_ptr<icu4x::FixedDecimalFormatter>(icu4x::FixedDecimalFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::FixedDecimalFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::string icu4x::FixedDecimalFormatter::format(const icu4x::FixedDecimal& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_FixedDecimalFormatter_format_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline const icu4x::capi::FixedDecimalFormatter* icu4x::FixedDecimalFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::FixedDecimalFormatter*>(this); +} + +inline icu4x::capi::FixedDecimalFormatter* icu4x::FixedDecimalFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::FixedDecimalFormatter*>(this); +} + +inline const icu4x::FixedDecimalFormatter* icu4x::FixedDecimalFormatter::FromFFI(const icu4x::capi::FixedDecimalFormatter* ptr) { + return reinterpret_cast<const icu4x::FixedDecimalFormatter*>(ptr); +} + +inline icu4x::FixedDecimalFormatter* icu4x::FixedDecimalFormatter::FromFFI(icu4x::capi::FixedDecimalFormatter* ptr) { + return reinterpret_cast<icu4x::FixedDecimalFormatter*>(ptr); +} + +inline void icu4x::FixedDecimalFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_FixedDecimalFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::FixedDecimalFormatter*>(ptr)); +} + + +#endif // icu4x_FixedDecimalFormatter_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalGroupingStrategy.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalGroupingStrategy.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/FixedDecimalGroupingStrategy.d.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalGroupingStrategy.d.hpp index 23922c8ab53..20f2d6760b7 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalGroupingStrategy.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalGroupingStrategy.d.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalGroupingStrategy_D_HPP -#define FixedDecimalGroupingStrategy_D_HPP +#ifndef icu4x_FixedDecimalGroupingStrategy_D_HPP +#define icu4x_FixedDecimalGroupingStrategy_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum FixedDecimalGroupingStrategy { FixedDecimalGroupingStrategy_Auto = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class FixedDecimalGroupingStrategy { public: enum Value { @@ -37,11 +38,11 @@ class FixedDecimalGroupingStrategy { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::FixedDecimalGroupingStrategy AsFFI() const; - inline static FixedDecimalGroupingStrategy FromFFI(diplomat::capi::FixedDecimalGroupingStrategy c_enum); + inline icu4x::capi::FixedDecimalGroupingStrategy AsFFI() const; + inline static icu4x::FixedDecimalGroupingStrategy FromFFI(icu4x::capi::FixedDecimalGroupingStrategy c_enum); private: Value value; }; - -#endif // FixedDecimalGroupingStrategy_D_HPP +} // namespace +#endif // icu4x_FixedDecimalGroupingStrategy_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalGroupingStrategy.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalGroupingStrategy.hpp new file mode 100644 index 00000000000..065005c9f15 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalGroupingStrategy.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_FixedDecimalGroupingStrategy_HPP +#define icu4x_FixedDecimalGroupingStrategy_HPP + +#include "FixedDecimalGroupingStrategy.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::FixedDecimalGroupingStrategy icu4x::FixedDecimalGroupingStrategy::AsFFI() const { + return static_cast<icu4x::capi::FixedDecimalGroupingStrategy>(value); +} + +inline icu4x::FixedDecimalGroupingStrategy icu4x::FixedDecimalGroupingStrategy::FromFFI(icu4x::capi::FixedDecimalGroupingStrategy c_enum) { + switch (c_enum) { + case icu4x::capi::FixedDecimalGroupingStrategy_Auto: + case icu4x::capi::FixedDecimalGroupingStrategy_Never: + case icu4x::capi::FixedDecimalGroupingStrategy_Always: + case icu4x::capi::FixedDecimalGroupingStrategy_Min2: + return static_cast<icu4x::FixedDecimalGroupingStrategy::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_FixedDecimalGroupingStrategy_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalLimitError.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalLimitError.d.hpp similarity index 50% rename from ffi/capi/bindings/cpp/FixedDecimalLimitError.d.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalLimitError.d.hpp index 7dbf757d3b0..a5a188df4b4 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalLimitError.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalLimitError.d.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalLimitError_D_HPP -#define FixedDecimalLimitError_D_HPP +#ifndef icu4x_FixedDecimalLimitError_D_HPP +#define icu4x_FixedDecimalLimitError_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,19 +7,20 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { } // namespace capi } // namespace +namespace icu4x { struct FixedDecimalLimitError { }; - -#endif // FixedDecimalLimitError_D_HPP +} // namespace +#endif // icu4x_FixedDecimalLimitError_D_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalLimitError.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalLimitError.hpp similarity index 59% rename from ffi/capi/bindings/cpp/FixedDecimalLimitError.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalLimitError.hpp index 84e02b94f75..dbebdb86ab9 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalLimitError.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalLimitError.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalLimitError_HPP -#define FixedDecimalLimitError_HPP +#ifndef icu4x_FixedDecimalLimitError_HPP +#define icu4x_FixedDecimalLimitError_HPP #include "FixedDecimalLimitError.d.hpp" @@ -9,10 +9,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { extern "C" { @@ -24,4 +24,4 @@ namespace capi { -#endif // FixedDecimalLimitError_HPP +#endif // icu4x_FixedDecimalLimitError_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalParseError.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalParseError.d.hpp similarity index 66% rename from ffi/capi/bindings/cpp/FixedDecimalParseError.d.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalParseError.d.hpp index d795d4dced8..4f6eaf6b3f7 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalParseError.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalParseError.d.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalParseError_D_HPP -#define FixedDecimalParseError_D_HPP +#ifndef icu4x_FixedDecimalParseError_D_HPP +#define icu4x_FixedDecimalParseError_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum FixedDecimalParseError { FixedDecimalParseError_Unknown = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class FixedDecimalParseError { public: enum Value { @@ -35,11 +36,11 @@ class FixedDecimalParseError { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::FixedDecimalParseError AsFFI() const; - inline static FixedDecimalParseError FromFFI(diplomat::capi::FixedDecimalParseError c_enum); + inline icu4x::capi::FixedDecimalParseError AsFFI() const; + inline static icu4x::FixedDecimalParseError FromFFI(icu4x::capi::FixedDecimalParseError c_enum); private: Value value; }; - -#endif // FixedDecimalParseError_D_HPP +} // namespace +#endif // icu4x_FixedDecimalParseError_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalParseError.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalParseError.hpp new file mode 100644 index 00000000000..aa26ac00e63 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalParseError.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_FixedDecimalParseError_HPP +#define icu4x_FixedDecimalParseError_HPP + +#include "FixedDecimalParseError.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::FixedDecimalParseError icu4x::FixedDecimalParseError::AsFFI() const { + return static_cast<icu4x::capi::FixedDecimalParseError>(value); +} + +inline icu4x::FixedDecimalParseError icu4x::FixedDecimalParseError::FromFFI(icu4x::capi::FixedDecimalParseError c_enum) { + switch (c_enum) { + case icu4x::capi::FixedDecimalParseError_Unknown: + case icu4x::capi::FixedDecimalParseError_Limit: + case icu4x::capi::FixedDecimalParseError_Syntax: + return static_cast<icu4x::FixedDecimalParseError::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_FixedDecimalParseError_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalRoundingIncrement.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.d.hpp similarity index 68% rename from ffi/capi/bindings/cpp/FixedDecimalRoundingIncrement.d.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.d.hpp index 073d2013ccf..da49a4e9b0f 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalRoundingIncrement.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.d.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalRoundingIncrement_D_HPP -#define FixedDecimalRoundingIncrement_D_HPP +#ifndef icu4x_FixedDecimalRoundingIncrement_D_HPP +#define icu4x_FixedDecimalRoundingIncrement_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum FixedDecimalRoundingIncrement { FixedDecimalRoundingIncrement_MultiplesOf1 = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class FixedDecimalRoundingIncrement { public: enum Value { @@ -37,11 +38,11 @@ class FixedDecimalRoundingIncrement { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::FixedDecimalRoundingIncrement AsFFI() const; - inline static FixedDecimalRoundingIncrement FromFFI(diplomat::capi::FixedDecimalRoundingIncrement c_enum); + inline icu4x::capi::FixedDecimalRoundingIncrement AsFFI() const; + inline static icu4x::FixedDecimalRoundingIncrement FromFFI(icu4x::capi::FixedDecimalRoundingIncrement c_enum); private: Value value; }; - -#endif // FixedDecimalRoundingIncrement_D_HPP +} // namespace +#endif // icu4x_FixedDecimalRoundingIncrement_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.hpp new file mode 100644 index 00000000000..6fdabd4a6fe --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingIncrement.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_FixedDecimalRoundingIncrement_HPP +#define icu4x_FixedDecimalRoundingIncrement_HPP + +#include "FixedDecimalRoundingIncrement.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::FixedDecimalRoundingIncrement icu4x::FixedDecimalRoundingIncrement::AsFFI() const { + return static_cast<icu4x::capi::FixedDecimalRoundingIncrement>(value); +} + +inline icu4x::FixedDecimalRoundingIncrement icu4x::FixedDecimalRoundingIncrement::FromFFI(icu4x::capi::FixedDecimalRoundingIncrement c_enum) { + switch (c_enum) { + case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf1: + case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf2: + case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf5: + case icu4x::capi::FixedDecimalRoundingIncrement_MultiplesOf25: + return static_cast<icu4x::FixedDecimalRoundingIncrement::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_FixedDecimalRoundingIncrement_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalRoundingMode.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingMode.d.hpp similarity index 74% rename from ffi/capi/bindings/cpp/FixedDecimalRoundingMode.d.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingMode.d.hpp index 0ab50fd8f59..50141604e11 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalRoundingMode.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingMode.d.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalRoundingMode_D_HPP -#define FixedDecimalRoundingMode_D_HPP +#ifndef icu4x_FixedDecimalRoundingMode_D_HPP +#define icu4x_FixedDecimalRoundingMode_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum FixedDecimalRoundingMode { FixedDecimalRoundingMode_Ceil = 0, @@ -26,6 +26,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class FixedDecimalRoundingMode { public: enum Value { @@ -47,11 +48,11 @@ class FixedDecimalRoundingMode { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::FixedDecimalRoundingMode AsFFI() const; - inline static FixedDecimalRoundingMode FromFFI(diplomat::capi::FixedDecimalRoundingMode c_enum); + inline icu4x::capi::FixedDecimalRoundingMode AsFFI() const; + inline static icu4x::FixedDecimalRoundingMode FromFFI(icu4x::capi::FixedDecimalRoundingMode c_enum); private: Value value; }; - -#endif // FixedDecimalRoundingMode_D_HPP +} // namespace +#endif // icu4x_FixedDecimalRoundingMode_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingMode.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingMode.hpp new file mode 100644 index 00000000000..962bafc3048 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalRoundingMode.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_FixedDecimalRoundingMode_HPP +#define icu4x_FixedDecimalRoundingMode_HPP + +#include "FixedDecimalRoundingMode.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::FixedDecimalRoundingMode icu4x::FixedDecimalRoundingMode::AsFFI() const { + return static_cast<icu4x::capi::FixedDecimalRoundingMode>(value); +} + +inline icu4x::FixedDecimalRoundingMode icu4x::FixedDecimalRoundingMode::FromFFI(icu4x::capi::FixedDecimalRoundingMode c_enum) { + switch (c_enum) { + case icu4x::capi::FixedDecimalRoundingMode_Ceil: + case icu4x::capi::FixedDecimalRoundingMode_Expand: + case icu4x::capi::FixedDecimalRoundingMode_Floor: + case icu4x::capi::FixedDecimalRoundingMode_Trunc: + case icu4x::capi::FixedDecimalRoundingMode_HalfCeil: + case icu4x::capi::FixedDecimalRoundingMode_HalfExpand: + case icu4x::capi::FixedDecimalRoundingMode_HalfFloor: + case icu4x::capi::FixedDecimalRoundingMode_HalfTrunc: + case icu4x::capi::FixedDecimalRoundingMode_HalfEven: + return static_cast<icu4x::FixedDecimalRoundingMode::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_FixedDecimalRoundingMode_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalSign.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSign.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/FixedDecimalSign.d.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalSign.d.hpp index dccf27e4ff7..a0e39c81ae9 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalSign.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSign.d.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalSign_D_HPP -#define FixedDecimalSign_D_HPP +#ifndef icu4x_FixedDecimalSign_D_HPP +#define icu4x_FixedDecimalSign_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum FixedDecimalSign { FixedDecimalSign_None = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class FixedDecimalSign { public: enum Value { @@ -35,11 +36,11 @@ class FixedDecimalSign { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::FixedDecimalSign AsFFI() const; - inline static FixedDecimalSign FromFFI(diplomat::capi::FixedDecimalSign c_enum); + inline icu4x::capi::FixedDecimalSign AsFFI() const; + inline static icu4x::FixedDecimalSign FromFFI(icu4x::capi::FixedDecimalSign c_enum); private: Value value; }; - -#endif // FixedDecimalSign_D_HPP +} // namespace +#endif // icu4x_FixedDecimalSign_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalSign.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSign.hpp new file mode 100644 index 00000000000..b06e1682c1d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSign.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_FixedDecimalSign_HPP +#define icu4x_FixedDecimalSign_HPP + +#include "FixedDecimalSign.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::FixedDecimalSign icu4x::FixedDecimalSign::AsFFI() const { + return static_cast<icu4x::capi::FixedDecimalSign>(value); +} + +inline icu4x::FixedDecimalSign icu4x::FixedDecimalSign::FromFFI(icu4x::capi::FixedDecimalSign c_enum) { + switch (c_enum) { + case icu4x::capi::FixedDecimalSign_None: + case icu4x::capi::FixedDecimalSign_Negative: + case icu4x::capi::FixedDecimalSign_Positive: + return static_cast<icu4x::FixedDecimalSign::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_FixedDecimalSign_HPP diff --git a/ffi/capi/bindings/cpp/FixedDecimalSignDisplay.d.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSignDisplay.d.hpp similarity index 69% rename from ffi/capi/bindings/cpp/FixedDecimalSignDisplay.d.hpp rename to ffi/capi/bindings/cpp/icu4x/FixedDecimalSignDisplay.d.hpp index c63f0c4dc77..d45f15355ed 100644 --- a/ffi/capi/bindings/cpp/FixedDecimalSignDisplay.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSignDisplay.d.hpp @@ -1,5 +1,5 @@ -#ifndef FixedDecimalSignDisplay_D_HPP -#define FixedDecimalSignDisplay_D_HPP +#ifndef icu4x_FixedDecimalSignDisplay_D_HPP +#define icu4x_FixedDecimalSignDisplay_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum FixedDecimalSignDisplay { FixedDecimalSignDisplay_Auto = 0, @@ -22,6 +22,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class FixedDecimalSignDisplay { public: enum Value { @@ -39,11 +40,11 @@ class FixedDecimalSignDisplay { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::FixedDecimalSignDisplay AsFFI() const; - inline static FixedDecimalSignDisplay FromFFI(diplomat::capi::FixedDecimalSignDisplay c_enum); + inline icu4x::capi::FixedDecimalSignDisplay AsFFI() const; + inline static icu4x::FixedDecimalSignDisplay FromFFI(icu4x::capi::FixedDecimalSignDisplay c_enum); private: Value value; }; - -#endif // FixedDecimalSignDisplay_D_HPP +} // namespace +#endif // icu4x_FixedDecimalSignDisplay_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/FixedDecimalSignDisplay.hpp b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSignDisplay.hpp new file mode 100644 index 00000000000..c066ef1f4ac --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/FixedDecimalSignDisplay.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_FixedDecimalSignDisplay_HPP +#define icu4x_FixedDecimalSignDisplay_HPP + +#include "FixedDecimalSignDisplay.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::FixedDecimalSignDisplay icu4x::FixedDecimalSignDisplay::AsFFI() const { + return static_cast<icu4x::capi::FixedDecimalSignDisplay>(value); +} + +inline icu4x::FixedDecimalSignDisplay icu4x::FixedDecimalSignDisplay::FromFFI(icu4x::capi::FixedDecimalSignDisplay c_enum) { + switch (c_enum) { + case icu4x::capi::FixedDecimalSignDisplay_Auto: + case icu4x::capi::FixedDecimalSignDisplay_Never: + case icu4x::capi::FixedDecimalSignDisplay_Always: + case icu4x::capi::FixedDecimalSignDisplay_ExceptZero: + case icu4x::capi::FixedDecimalSignDisplay_Negative: + return static_cast<icu4x::FixedDecimalSignDisplay::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_FixedDecimalSignDisplay_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.d.hpp b/ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.d.hpp new file mode 100644 index 00000000000..c378524258e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.d.hpp @@ -0,0 +1,52 @@ +#ifndef icu4x_GeneralCategoryNameToMaskMapper_D_HPP +#define icu4x_GeneralCategoryNameToMaskMapper_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct GeneralCategoryNameToMaskMapper; } +class GeneralCategoryNameToMaskMapper; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct GeneralCategoryNameToMaskMapper; +} // namespace capi +} // namespace + +namespace icu4x { +class GeneralCategoryNameToMaskMapper { +public: + + inline uint32_t get_strict(std::string_view name) const; + + inline uint32_t get_loose(std::string_view name) const; + + inline static diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToMaskMapper>, icu4x::DataError> load(const icu4x::DataProvider& provider); + + inline const icu4x::capi::GeneralCategoryNameToMaskMapper* AsFFI() const; + inline icu4x::capi::GeneralCategoryNameToMaskMapper* AsFFI(); + inline static const icu4x::GeneralCategoryNameToMaskMapper* FromFFI(const icu4x::capi::GeneralCategoryNameToMaskMapper* ptr); + inline static icu4x::GeneralCategoryNameToMaskMapper* FromFFI(icu4x::capi::GeneralCategoryNameToMaskMapper* ptr); + inline static void operator delete(void* ptr); +private: + GeneralCategoryNameToMaskMapper() = delete; + GeneralCategoryNameToMaskMapper(const icu4x::GeneralCategoryNameToMaskMapper&) = delete; + GeneralCategoryNameToMaskMapper(icu4x::GeneralCategoryNameToMaskMapper&&) noexcept = delete; + GeneralCategoryNameToMaskMapper operator=(const icu4x::GeneralCategoryNameToMaskMapper&) = delete; + GeneralCategoryNameToMaskMapper operator=(icu4x::GeneralCategoryNameToMaskMapper&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GeneralCategoryNameToMaskMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.hpp b/ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.hpp new file mode 100644 index 00000000000..fa83f034d34 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GeneralCategoryNameToMaskMapper.hpp @@ -0,0 +1,75 @@ +#ifndef icu4x_GeneralCategoryNameToMaskMapper_HPP +#define icu4x_GeneralCategoryNameToMaskMapper_HPP + +#include "GeneralCategoryNameToMaskMapper.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + uint32_t icu4x_GeneralCategoryNameToMaskMapper_get_strict_mv1(const icu4x::capi::GeneralCategoryNameToMaskMapper* self, const char* name_data, size_t name_len); + + uint32_t icu4x_GeneralCategoryNameToMaskMapper_get_loose_mv1(const icu4x::capi::GeneralCategoryNameToMaskMapper* self, const char* name_data, size_t name_len); + + typedef struct icu4x_GeneralCategoryNameToMaskMapper_load_mv1_result {union {icu4x::capi::GeneralCategoryNameToMaskMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_GeneralCategoryNameToMaskMapper_load_mv1_result; + icu4x_GeneralCategoryNameToMaskMapper_load_mv1_result icu4x_GeneralCategoryNameToMaskMapper_load_mv1(const icu4x::capi::DataProvider* provider); + + + void icu4x_GeneralCategoryNameToMaskMapper_destroy_mv1(GeneralCategoryNameToMaskMapper* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline uint32_t icu4x::GeneralCategoryNameToMaskMapper::get_strict(std::string_view name) const { + auto result = icu4x::capi::icu4x_GeneralCategoryNameToMaskMapper_get_strict_mv1(this->AsFFI(), + name.data(), + name.size()); + return result; +} + +inline uint32_t icu4x::GeneralCategoryNameToMaskMapper::get_loose(std::string_view name) const { + auto result = icu4x::capi::icu4x_GeneralCategoryNameToMaskMapper_get_loose_mv1(this->AsFFI(), + name.data(), + name.size()); + return result; +} + +inline diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToMaskMapper>, icu4x::DataError> icu4x::GeneralCategoryNameToMaskMapper::load(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_GeneralCategoryNameToMaskMapper_load_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToMaskMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::GeneralCategoryNameToMaskMapper>>(std::unique_ptr<icu4x::GeneralCategoryNameToMaskMapper>(icu4x::GeneralCategoryNameToMaskMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GeneralCategoryNameToMaskMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline const icu4x::capi::GeneralCategoryNameToMaskMapper* icu4x::GeneralCategoryNameToMaskMapper::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GeneralCategoryNameToMaskMapper*>(this); +} + +inline icu4x::capi::GeneralCategoryNameToMaskMapper* icu4x::GeneralCategoryNameToMaskMapper::AsFFI() { + return reinterpret_cast<icu4x::capi::GeneralCategoryNameToMaskMapper*>(this); +} + +inline const icu4x::GeneralCategoryNameToMaskMapper* icu4x::GeneralCategoryNameToMaskMapper::FromFFI(const icu4x::capi::GeneralCategoryNameToMaskMapper* ptr) { + return reinterpret_cast<const icu4x::GeneralCategoryNameToMaskMapper*>(ptr); +} + +inline icu4x::GeneralCategoryNameToMaskMapper* icu4x::GeneralCategoryNameToMaskMapper::FromFFI(icu4x::capi::GeneralCategoryNameToMaskMapper* ptr) { + return reinterpret_cast<icu4x::GeneralCategoryNameToMaskMapper*>(ptr); +} + +inline void icu4x::GeneralCategoryNameToMaskMapper::operator delete(void* ptr) { + icu4x::capi::icu4x_GeneralCategoryNameToMaskMapper_destroy_mv1(reinterpret_cast<icu4x::capi::GeneralCategoryNameToMaskMapper*>(ptr)); +} + + +#endif // icu4x_GeneralCategoryNameToMaskMapper_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.d.hpp new file mode 100644 index 00000000000..7d3285a7e69 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_GraphemeClusterBreakIteratorLatin1_D_HPP +#define icu4x_GraphemeClusterBreakIteratorLatin1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct GraphemeClusterBreakIteratorLatin1; +} // namespace capi +} // namespace + +namespace icu4x { +class GraphemeClusterBreakIteratorLatin1 { +public: + + inline int32_t next(); + + inline const icu4x::capi::GraphemeClusterBreakIteratorLatin1* AsFFI() const; + inline icu4x::capi::GraphemeClusterBreakIteratorLatin1* AsFFI(); + inline static const icu4x::GraphemeClusterBreakIteratorLatin1* FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr); + inline static icu4x::GraphemeClusterBreakIteratorLatin1* FromFFI(icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr); + inline static void operator delete(void* ptr); +private: + GraphemeClusterBreakIteratorLatin1() = delete; + GraphemeClusterBreakIteratorLatin1(const icu4x::GraphemeClusterBreakIteratorLatin1&) = delete; + GraphemeClusterBreakIteratorLatin1(icu4x::GraphemeClusterBreakIteratorLatin1&&) noexcept = delete; + GraphemeClusterBreakIteratorLatin1 operator=(const icu4x::GraphemeClusterBreakIteratorLatin1&) = delete; + GraphemeClusterBreakIteratorLatin1 operator=(icu4x::GraphemeClusterBreakIteratorLatin1&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GraphemeClusterBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.hpp new file mode 100644 index 00000000000..a857ff3864b --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorLatin1.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_GraphemeClusterBreakIteratorLatin1_HPP +#define icu4x_GraphemeClusterBreakIteratorLatin1_HPP + +#include "GraphemeClusterBreakIteratorLatin1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(icu4x::capi::GraphemeClusterBreakIteratorLatin1* self); + + + void icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(GraphemeClusterBreakIteratorLatin1* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::GraphemeClusterBreakIteratorLatin1::next() { + auto result = icu4x::capi::icu4x_GraphemeClusterBreakIteratorLatin1_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GraphemeClusterBreakIteratorLatin1*>(this); +} + +inline icu4x::capi::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::AsFFI() { + return reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorLatin1*>(this); +} + +inline const icu4x::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr) { + return reinterpret_cast<const icu4x::GraphemeClusterBreakIteratorLatin1*>(ptr); +} + +inline icu4x::GraphemeClusterBreakIteratorLatin1* icu4x::GraphemeClusterBreakIteratorLatin1::FromFFI(icu4x::capi::GraphemeClusterBreakIteratorLatin1* ptr) { + return reinterpret_cast<icu4x::GraphemeClusterBreakIteratorLatin1*>(ptr); +} + +inline void icu4x::GraphemeClusterBreakIteratorLatin1::operator delete(void* ptr) { + icu4x::capi::icu4x_GraphemeClusterBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorLatin1*>(ptr)); +} + + +#endif // icu4x_GraphemeClusterBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.d.hpp new file mode 100644 index 00000000000..81fa6d1b3dc --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_GraphemeClusterBreakIteratorUtf16_D_HPP +#define icu4x_GraphemeClusterBreakIteratorUtf16_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct GraphemeClusterBreakIteratorUtf16; +} // namespace capi +} // namespace + +namespace icu4x { +class GraphemeClusterBreakIteratorUtf16 { +public: + + inline int32_t next(); + + inline const icu4x::capi::GraphemeClusterBreakIteratorUtf16* AsFFI() const; + inline icu4x::capi::GraphemeClusterBreakIteratorUtf16* AsFFI(); + inline static const icu4x::GraphemeClusterBreakIteratorUtf16* FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr); + inline static icu4x::GraphemeClusterBreakIteratorUtf16* FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr); + inline static void operator delete(void* ptr); +private: + GraphemeClusterBreakIteratorUtf16() = delete; + GraphemeClusterBreakIteratorUtf16(const icu4x::GraphemeClusterBreakIteratorUtf16&) = delete; + GraphemeClusterBreakIteratorUtf16(icu4x::GraphemeClusterBreakIteratorUtf16&&) noexcept = delete; + GraphemeClusterBreakIteratorUtf16 operator=(const icu4x::GraphemeClusterBreakIteratorUtf16&) = delete; + GraphemeClusterBreakIteratorUtf16 operator=(icu4x::GraphemeClusterBreakIteratorUtf16&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GraphemeClusterBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.hpp new file mode 100644 index 00000000000..f331c485ffa --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf16.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_GraphemeClusterBreakIteratorUtf16_HPP +#define icu4x_GraphemeClusterBreakIteratorUtf16_HPP + +#include "GraphemeClusterBreakIteratorUtf16.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(icu4x::capi::GraphemeClusterBreakIteratorUtf16* self); + + + void icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(GraphemeClusterBreakIteratorUtf16* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::GraphemeClusterBreakIteratorUtf16::next() { + auto result = icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf16_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GraphemeClusterBreakIteratorUtf16*>(this); +} + +inline icu4x::capi::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::AsFFI() { + return reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf16*>(this); +} + +inline const icu4x::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr) { + return reinterpret_cast<const icu4x::GraphemeClusterBreakIteratorUtf16*>(ptr); +} + +inline icu4x::GraphemeClusterBreakIteratorUtf16* icu4x::GraphemeClusterBreakIteratorUtf16::FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf16* ptr) { + return reinterpret_cast<icu4x::GraphemeClusterBreakIteratorUtf16*>(ptr); +} + +inline void icu4x::GraphemeClusterBreakIteratorUtf16::operator delete(void* ptr) { + icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf16*>(ptr)); +} + + +#endif // icu4x_GraphemeClusterBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.d.hpp new file mode 100644 index 00000000000..fa88c07a5a4 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_GraphemeClusterBreakIteratorUtf8_D_HPP +#define icu4x_GraphemeClusterBreakIteratorUtf8_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct GraphemeClusterBreakIteratorUtf8; +} // namespace capi +} // namespace + +namespace icu4x { +class GraphemeClusterBreakIteratorUtf8 { +public: + + inline int32_t next(); + + inline const icu4x::capi::GraphemeClusterBreakIteratorUtf8* AsFFI() const; + inline icu4x::capi::GraphemeClusterBreakIteratorUtf8* AsFFI(); + inline static const icu4x::GraphemeClusterBreakIteratorUtf8* FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr); + inline static icu4x::GraphemeClusterBreakIteratorUtf8* FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr); + inline static void operator delete(void* ptr); +private: + GraphemeClusterBreakIteratorUtf8() = delete; + GraphemeClusterBreakIteratorUtf8(const icu4x::GraphemeClusterBreakIteratorUtf8&) = delete; + GraphemeClusterBreakIteratorUtf8(icu4x::GraphemeClusterBreakIteratorUtf8&&) noexcept = delete; + GraphemeClusterBreakIteratorUtf8 operator=(const icu4x::GraphemeClusterBreakIteratorUtf8&) = delete; + GraphemeClusterBreakIteratorUtf8 operator=(icu4x::GraphemeClusterBreakIteratorUtf8&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GraphemeClusterBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.hpp new file mode 100644 index 00000000000..869209e8d72 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterBreakIteratorUtf8.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_GraphemeClusterBreakIteratorUtf8_HPP +#define icu4x_GraphemeClusterBreakIteratorUtf8_HPP + +#include "GraphemeClusterBreakIteratorUtf8.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(icu4x::capi::GraphemeClusterBreakIteratorUtf8* self); + + + void icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(GraphemeClusterBreakIteratorUtf8* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::GraphemeClusterBreakIteratorUtf8::next() { + auto result = icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf8_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GraphemeClusterBreakIteratorUtf8*>(this); +} + +inline icu4x::capi::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::AsFFI() { + return reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf8*>(this); +} + +inline const icu4x::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::FromFFI(const icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr) { + return reinterpret_cast<const icu4x::GraphemeClusterBreakIteratorUtf8*>(ptr); +} + +inline icu4x::GraphemeClusterBreakIteratorUtf8* icu4x::GraphemeClusterBreakIteratorUtf8::FromFFI(icu4x::capi::GraphemeClusterBreakIteratorUtf8* ptr) { + return reinterpret_cast<icu4x::GraphemeClusterBreakIteratorUtf8*>(ptr); +} + +inline void icu4x::GraphemeClusterBreakIteratorUtf8::operator delete(void* ptr) { + icu4x::capi::icu4x_GraphemeClusterBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterBreakIteratorUtf8*>(ptr)); +} + + +#endif // icu4x_GraphemeClusterBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.d.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.d.hpp new file mode 100644 index 00000000000..da0bcdf8ff9 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_GraphemeClusterSegmenter_D_HPP +#define icu4x_GraphemeClusterSegmenter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct GraphemeClusterBreakIteratorLatin1; } +class GraphemeClusterBreakIteratorLatin1; +namespace capi { struct GraphemeClusterBreakIteratorUtf16; } +class GraphemeClusterBreakIteratorUtf16; +namespace capi { struct GraphemeClusterBreakIteratorUtf8; } +class GraphemeClusterBreakIteratorUtf8; +namespace capi { struct GraphemeClusterSegmenter; } +class GraphemeClusterSegmenter; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct GraphemeClusterSegmenter; +} // namespace capi +} // namespace + +namespace icu4x { +class GraphemeClusterSegmenter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf8> segment(std::string_view input) const; + + inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf16> segment16(std::u16string_view input) const; + + inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; + + inline const icu4x::capi::GraphemeClusterSegmenter* AsFFI() const; + inline icu4x::capi::GraphemeClusterSegmenter* AsFFI(); + inline static const icu4x::GraphemeClusterSegmenter* FromFFI(const icu4x::capi::GraphemeClusterSegmenter* ptr); + inline static icu4x::GraphemeClusterSegmenter* FromFFI(icu4x::capi::GraphemeClusterSegmenter* ptr); + inline static void operator delete(void* ptr); +private: + GraphemeClusterSegmenter() = delete; + GraphemeClusterSegmenter(const icu4x::GraphemeClusterSegmenter&) = delete; + GraphemeClusterSegmenter(icu4x::GraphemeClusterSegmenter&&) noexcept = delete; + GraphemeClusterSegmenter operator=(const icu4x::GraphemeClusterSegmenter&) = delete; + GraphemeClusterSegmenter operator=(icu4x::GraphemeClusterSegmenter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GraphemeClusterSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.hpp b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.hpp new file mode 100644 index 00000000000..241b41d3d23 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GraphemeClusterSegmenter.hpp @@ -0,0 +1,87 @@ +#ifndef icu4x_GraphemeClusterSegmenter_HPP +#define icu4x_GraphemeClusterSegmenter_HPP + +#include "GraphemeClusterSegmenter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "GraphemeClusterBreakIteratorLatin1.hpp" +#include "GraphemeClusterBreakIteratorUtf16.hpp" +#include "GraphemeClusterBreakIteratorUtf8.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_GraphemeClusterSegmenter_create_mv1_result {union {icu4x::capi::GraphemeClusterSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_GraphemeClusterSegmenter_create_mv1_result; + icu4x_GraphemeClusterSegmenter_create_mv1_result icu4x_GraphemeClusterSegmenter_create_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::GraphemeClusterBreakIteratorUtf8* icu4x_GraphemeClusterSegmenter_segment_utf8_mv1(const icu4x::capi::GraphemeClusterSegmenter* self, const char* input_data, size_t input_len); + + icu4x::capi::GraphemeClusterBreakIteratorUtf16* icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(const icu4x::capi::GraphemeClusterSegmenter* self, const char16_t* input_data, size_t input_len); + + icu4x::capi::GraphemeClusterBreakIteratorLatin1* icu4x_GraphemeClusterSegmenter_segment_latin1_mv1(const icu4x::capi::GraphemeClusterSegmenter* self, const uint8_t* input_data, size_t input_len); + + + void icu4x_GraphemeClusterSegmenter_destroy_mv1(GraphemeClusterSegmenter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError> icu4x::GraphemeClusterSegmenter::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::GraphemeClusterSegmenter>>(std::unique_ptr<icu4x::GraphemeClusterSegmenter>(icu4x::GraphemeClusterSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GraphemeClusterSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf8> icu4x::GraphemeClusterSegmenter::segment(std::string_view input) const { + auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_segment_utf8_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf8>(icu4x::GraphemeClusterBreakIteratorUtf8::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf16> icu4x::GraphemeClusterSegmenter::segment16(std::u16string_view input) const { + auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_segment_utf16_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::GraphemeClusterBreakIteratorUtf16>(icu4x::GraphemeClusterBreakIteratorUtf16::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::GraphemeClusterBreakIteratorLatin1> icu4x::GraphemeClusterSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { + auto result = icu4x::capi::icu4x_GraphemeClusterSegmenter_segment_latin1_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::GraphemeClusterBreakIteratorLatin1>(icu4x::GraphemeClusterBreakIteratorLatin1::FromFFI(result)); +} + +inline const icu4x::capi::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GraphemeClusterSegmenter*>(this); +} + +inline icu4x::capi::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::AsFFI() { + return reinterpret_cast<icu4x::capi::GraphemeClusterSegmenter*>(this); +} + +inline const icu4x::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::FromFFI(const icu4x::capi::GraphemeClusterSegmenter* ptr) { + return reinterpret_cast<const icu4x::GraphemeClusterSegmenter*>(ptr); +} + +inline icu4x::GraphemeClusterSegmenter* icu4x::GraphemeClusterSegmenter::FromFFI(icu4x::capi::GraphemeClusterSegmenter* ptr) { + return reinterpret_cast<icu4x::GraphemeClusterSegmenter*>(ptr); +} + +inline void icu4x::GraphemeClusterSegmenter::operator delete(void* ptr) { + icu4x::capi::icu4x_GraphemeClusterSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::GraphemeClusterSegmenter*>(ptr)); +} + + +#endif // icu4x_GraphemeClusterSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.d.hpp new file mode 100644 index 00000000000..85bef736dd0 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.d.hpp @@ -0,0 +1,59 @@ +#ifndef icu4x_GregorianDateFormatter_D_HPP +#define icu4x_GregorianDateFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct GregorianDateFormatter; } +class GregorianDateFormatter; +namespace capi { struct IsoDate; } +class IsoDate; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Locale; } +class Locale; +class DateLength; +class Error; +} + + +namespace icu4x { +namespace capi { + struct GregorianDateFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class GregorianDateFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::Error> create_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength length); + + inline std::string format_iso_date(const icu4x::IsoDate& value) const; + + inline std::string format_iso_datetime(const icu4x::IsoDateTime& value) const; + + inline const icu4x::capi::GregorianDateFormatter* AsFFI() const; + inline icu4x::capi::GregorianDateFormatter* AsFFI(); + inline static const icu4x::GregorianDateFormatter* FromFFI(const icu4x::capi::GregorianDateFormatter* ptr); + inline static icu4x::GregorianDateFormatter* FromFFI(icu4x::capi::GregorianDateFormatter* ptr); + inline static void operator delete(void* ptr); +private: + GregorianDateFormatter() = delete; + GregorianDateFormatter(const icu4x::GregorianDateFormatter&) = delete; + GregorianDateFormatter(icu4x::GregorianDateFormatter&&) noexcept = delete; + GregorianDateFormatter operator=(const icu4x::GregorianDateFormatter&) = delete; + GregorianDateFormatter operator=(icu4x::GregorianDateFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GregorianDateFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.hpp new file mode 100644 index 00000000000..6bf881d4b6d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GregorianDateFormatter.hpp @@ -0,0 +1,85 @@ +#ifndef icu4x_GregorianDateFormatter_HPP +#define icu4x_GregorianDateFormatter_HPP + +#include "GregorianDateFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataProvider.hpp" +#include "DateLength.hpp" +#include "Error.hpp" +#include "IsoDate.hpp" +#include "IsoDateTime.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_GregorianDateFormatter_create_with_length_mv1_result {union {icu4x::capi::GregorianDateFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_GregorianDateFormatter_create_with_length_mv1_result; + icu4x_GregorianDateFormatter_create_with_length_mv1_result icu4x_GregorianDateFormatter_create_with_length_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength length); + + void icu4x_GregorianDateFormatter_format_iso_date_mv1(const icu4x::capi::GregorianDateFormatter* self, const icu4x::capi::IsoDate* value, diplomat::capi::DiplomatWrite* write); + + void icu4x_GregorianDateFormatter_format_iso_datetime_mv1(const icu4x::capi::GregorianDateFormatter* self, const icu4x::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); + + + void icu4x_GregorianDateFormatter_destroy_mv1(GregorianDateFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::Error> icu4x::GregorianDateFormatter::create_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength length) { + auto result = icu4x::capi::icu4x_GregorianDateFormatter_create_with_length_mv1(provider.AsFFI(), + locale.AsFFI(), + length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::GregorianDateFormatter>>(std::unique_ptr<icu4x::GregorianDateFormatter>(icu4x::GregorianDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianDateFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline std::string icu4x::GregorianDateFormatter::format_iso_date(const icu4x::IsoDate& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_GregorianDateFormatter_format_iso_date_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline std::string icu4x::GregorianDateFormatter::format_iso_datetime(const icu4x::IsoDateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_GregorianDateFormatter_format_iso_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline const icu4x::capi::GregorianDateFormatter* icu4x::GregorianDateFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GregorianDateFormatter*>(this); +} + +inline icu4x::capi::GregorianDateFormatter* icu4x::GregorianDateFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::GregorianDateFormatter*>(this); +} + +inline const icu4x::GregorianDateFormatter* icu4x::GregorianDateFormatter::FromFFI(const icu4x::capi::GregorianDateFormatter* ptr) { + return reinterpret_cast<const icu4x::GregorianDateFormatter*>(ptr); +} + +inline icu4x::GregorianDateFormatter* icu4x::GregorianDateFormatter::FromFFI(icu4x::capi::GregorianDateFormatter* ptr) { + return reinterpret_cast<icu4x::GregorianDateFormatter*>(ptr); +} + +inline void icu4x::GregorianDateFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_GregorianDateFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::GregorianDateFormatter*>(ptr)); +} + + +#endif // icu4x_GregorianDateFormatter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.d.hpp new file mode 100644 index 00000000000..f5714cfe525 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.d.hpp @@ -0,0 +1,56 @@ +#ifndef icu4x_GregorianDateTimeFormatter_D_HPP +#define icu4x_GregorianDateTimeFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct GregorianDateTimeFormatter; } +class GregorianDateTimeFormatter; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Locale; } +class Locale; +class DateLength; +class Error; +class TimeLength; +} + + +namespace icu4x { +namespace capi { + struct GregorianDateTimeFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class GregorianDateTimeFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::GregorianDateTimeFormatter>, icu4x::Error> create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length); + + inline std::string format_iso_datetime(const icu4x::IsoDateTime& value) const; + + inline const icu4x::capi::GregorianDateTimeFormatter* AsFFI() const; + inline icu4x::capi::GregorianDateTimeFormatter* AsFFI(); + inline static const icu4x::GregorianDateTimeFormatter* FromFFI(const icu4x::capi::GregorianDateTimeFormatter* ptr); + inline static icu4x::GregorianDateTimeFormatter* FromFFI(icu4x::capi::GregorianDateTimeFormatter* ptr); + inline static void operator delete(void* ptr); +private: + GregorianDateTimeFormatter() = delete; + GregorianDateTimeFormatter(const icu4x::GregorianDateTimeFormatter&) = delete; + GregorianDateTimeFormatter(icu4x::GregorianDateTimeFormatter&&) noexcept = delete; + GregorianDateTimeFormatter operator=(const icu4x::GregorianDateTimeFormatter&) = delete; + GregorianDateTimeFormatter operator=(icu4x::GregorianDateTimeFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GregorianDateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.hpp new file mode 100644 index 00000000000..9b210e044ff --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GregorianDateTimeFormatter.hpp @@ -0,0 +1,75 @@ +#ifndef icu4x_GregorianDateTimeFormatter_HPP +#define icu4x_GregorianDateTimeFormatter_HPP + +#include "GregorianDateTimeFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataProvider.hpp" +#include "DateLength.hpp" +#include "Error.hpp" +#include "IsoDateTime.hpp" +#include "Locale.hpp" +#include "TimeLength.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1_result {union {icu4x::capi::GregorianDateTimeFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1_result; + icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1_result icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength date_length, icu4x::capi::TimeLength time_length); + + void icu4x_GregorianDateTimeFormatter_format_iso_datetime_mv1(const icu4x::capi::GregorianDateTimeFormatter* self, const icu4x::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); + + + void icu4x_GregorianDateTimeFormatter_destroy_mv1(GregorianDateTimeFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::GregorianDateTimeFormatter>, icu4x::Error> icu4x::GregorianDateTimeFormatter::create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length) { + auto result = icu4x::capi::icu4x_GregorianDateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), + locale.AsFFI(), + date_length.AsFFI(), + time_length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianDateTimeFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::GregorianDateTimeFormatter>>(std::unique_ptr<icu4x::GregorianDateTimeFormatter>(icu4x::GregorianDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianDateTimeFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline std::string icu4x::GregorianDateTimeFormatter::format_iso_datetime(const icu4x::IsoDateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_GregorianDateTimeFormatter_format_iso_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline const icu4x::capi::GregorianDateTimeFormatter* icu4x::GregorianDateTimeFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GregorianDateTimeFormatter*>(this); +} + +inline icu4x::capi::GregorianDateTimeFormatter* icu4x::GregorianDateTimeFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::GregorianDateTimeFormatter*>(this); +} + +inline const icu4x::GregorianDateTimeFormatter* icu4x::GregorianDateTimeFormatter::FromFFI(const icu4x::capi::GregorianDateTimeFormatter* ptr) { + return reinterpret_cast<const icu4x::GregorianDateTimeFormatter*>(ptr); +} + +inline icu4x::GregorianDateTimeFormatter* icu4x::GregorianDateTimeFormatter::FromFFI(icu4x::capi::GregorianDateTimeFormatter* ptr) { + return reinterpret_cast<icu4x::GregorianDateTimeFormatter*>(ptr); +} + +inline void icu4x::GregorianDateTimeFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_GregorianDateTimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::GregorianDateTimeFormatter*>(ptr)); +} + + +#endif // icu4x_GregorianDateTimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.d.hpp new file mode 100644 index 00000000000..910aedef05b --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.d.hpp @@ -0,0 +1,61 @@ +#ifndef icu4x_GregorianZonedDateTimeFormatter_D_HPP +#define icu4x_GregorianZonedDateTimeFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CustomTimeZone; } +class CustomTimeZone; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct GregorianZonedDateTimeFormatter; } +class GregorianZonedDateTimeFormatter; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Locale; } +class Locale; +struct IsoTimeZoneOptions; +class DateLength; +class Error; +class TimeLength; +} + + +namespace icu4x { +namespace capi { + struct GregorianZonedDateTimeFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class GregorianZonedDateTimeFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error> create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length); + + inline static diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error> create_with_lengths_and_iso_8601_time_zone_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length, icu4x::IsoTimeZoneOptions zone_options); + + inline std::string format_iso_datetime_with_custom_time_zone(const icu4x::IsoDateTime& datetime, const icu4x::CustomTimeZone& time_zone) const; + + inline const icu4x::capi::GregorianZonedDateTimeFormatter* AsFFI() const; + inline icu4x::capi::GregorianZonedDateTimeFormatter* AsFFI(); + inline static const icu4x::GregorianZonedDateTimeFormatter* FromFFI(const icu4x::capi::GregorianZonedDateTimeFormatter* ptr); + inline static icu4x::GregorianZonedDateTimeFormatter* FromFFI(icu4x::capi::GregorianZonedDateTimeFormatter* ptr); + inline static void operator delete(void* ptr); +private: + GregorianZonedDateTimeFormatter() = delete; + GregorianZonedDateTimeFormatter(const icu4x::GregorianZonedDateTimeFormatter&) = delete; + GregorianZonedDateTimeFormatter(icu4x::GregorianZonedDateTimeFormatter&&) noexcept = delete; + GregorianZonedDateTimeFormatter operator=(const icu4x::GregorianZonedDateTimeFormatter&) = delete; + GregorianZonedDateTimeFormatter operator=(icu4x::GregorianZonedDateTimeFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_GregorianZonedDateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.hpp new file mode 100644 index 00000000000..a465d7ad885 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/GregorianZonedDateTimeFormatter.hpp @@ -0,0 +1,90 @@ +#ifndef icu4x_GregorianZonedDateTimeFormatter_HPP +#define icu4x_GregorianZonedDateTimeFormatter_HPP + +#include "GregorianZonedDateTimeFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CustomTimeZone.hpp" +#include "DataProvider.hpp" +#include "DateLength.hpp" +#include "Error.hpp" +#include "IsoDateTime.hpp" +#include "IsoTimeZoneOptions.hpp" +#include "Locale.hpp" +#include "TimeLength.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1_result {union {icu4x::capi::GregorianZonedDateTimeFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1_result; + icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength date_length, icu4x::capi::TimeLength time_length); + + typedef struct icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result {union {icu4x::capi::GregorianZonedDateTimeFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result; + icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength date_length, icu4x::capi::TimeLength time_length, icu4x::capi::IsoTimeZoneOptions zone_options); + + void icu4x_GregorianZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(const icu4x::capi::GregorianZonedDateTimeFormatter* self, const icu4x::capi::IsoDateTime* datetime, const icu4x::capi::CustomTimeZone* time_zone, diplomat::capi::DiplomatWrite* write); + + + void icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(GregorianZonedDateTimeFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error> icu4x::GregorianZonedDateTimeFormatter::create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length) { + auto result = icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), + locale.AsFFI(), + date_length.AsFFI(), + time_length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>>(std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>(icu4x::GregorianZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error> icu4x::GregorianZonedDateTimeFormatter::create_with_lengths_and_iso_8601_time_zone_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length, icu4x::IsoTimeZoneOptions zone_options) { + auto result = icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(provider.AsFFI(), + locale.AsFFI(), + date_length.AsFFI(), + time_length.AsFFI(), + zone_options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>>(std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>(icu4x::GregorianZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::GregorianZonedDateTimeFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline std::string icu4x::GregorianZonedDateTimeFormatter::format_iso_datetime_with_custom_time_zone(const icu4x::IsoDateTime& datetime, const icu4x::CustomTimeZone& time_zone) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(this->AsFFI(), + datetime.AsFFI(), + time_zone.AsFFI(), + &write); + return output; +} + +inline const icu4x::capi::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::GregorianZonedDateTimeFormatter*>(this); +} + +inline icu4x::capi::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::GregorianZonedDateTimeFormatter*>(this); +} + +inline const icu4x::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::FromFFI(const icu4x::capi::GregorianZonedDateTimeFormatter* ptr) { + return reinterpret_cast<const icu4x::GregorianZonedDateTimeFormatter*>(ptr); +} + +inline icu4x::GregorianZonedDateTimeFormatter* icu4x::GregorianZonedDateTimeFormatter::FromFFI(icu4x::capi::GregorianZonedDateTimeFormatter* ptr) { + return reinterpret_cast<icu4x::GregorianZonedDateTimeFormatter*>(ptr); +} + +inline void icu4x::GregorianZonedDateTimeFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_GregorianZonedDateTimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::GregorianZonedDateTimeFormatter*>(ptr)); +} + + +#endif // icu4x_GregorianZonedDateTimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoDate.d.hpp b/ffi/capi/bindings/cpp/icu4x/IsoDate.d.hpp new file mode 100644 index 00000000000..37c7e578e36 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoDate.d.hpp @@ -0,0 +1,85 @@ +#ifndef icu4x_IsoDate_D_HPP +#define icu4x_IsoDate_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Calendar; } +class Calendar; +namespace capi { struct Date; } +class Date; +namespace capi { struct IsoDate; } +class IsoDate; +namespace capi { struct WeekCalculator; } +class WeekCalculator; +struct WeekOf; +class CalendarError; +class CalendarParseError; +class IsoWeekday; +} + + +namespace icu4x { +namespace capi { + struct IsoDate; +} // namespace capi +} // namespace + +namespace icu4x { +class IsoDate { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError> create(int32_t year, uint8_t month, uint8_t day); + + inline static diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError> from_string(std::string_view v); + + inline static std::unique_ptr<icu4x::IsoDate> unix_epoch(); + + inline std::unique_ptr<icu4x::Date> to_calendar(const icu4x::Calendar& calendar) const; + + inline std::unique_ptr<icu4x::Date> to_any() const; + + inline uint16_t day_of_year() const; + + inline uint32_t day_of_month() const; + + inline icu4x::IsoWeekday day_of_week() const; + + inline uint32_t week_of_month(icu4x::IsoWeekday first_weekday) const; + + inline icu4x::WeekOf week_of_year(const icu4x::WeekCalculator& calculator) const; + + inline uint32_t month() const; + + inline int32_t year() const; + + inline bool is_in_leap_year() const; + + inline uint8_t months_in_year() const; + + inline uint8_t days_in_month() const; + + inline uint16_t days_in_year() const; + + inline const icu4x::capi::IsoDate* AsFFI() const; + inline icu4x::capi::IsoDate* AsFFI(); + inline static const icu4x::IsoDate* FromFFI(const icu4x::capi::IsoDate* ptr); + inline static icu4x::IsoDate* FromFFI(icu4x::capi::IsoDate* ptr); + inline static void operator delete(void* ptr); +private: + IsoDate() = delete; + IsoDate(const icu4x::IsoDate&) = delete; + IsoDate(icu4x::IsoDate&&) noexcept = delete; + IsoDate operator=(const icu4x::IsoDate&) = delete; + IsoDate operator=(icu4x::IsoDate&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_IsoDate_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoDate.hpp b/ffi/capi/bindings/cpp/icu4x/IsoDate.hpp new file mode 100644 index 00000000000..afd58617200 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoDate.hpp @@ -0,0 +1,174 @@ +#ifndef icu4x_IsoDate_HPP +#define icu4x_IsoDate_HPP + +#include "IsoDate.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "Calendar.hpp" +#include "CalendarError.hpp" +#include "CalendarParseError.hpp" +#include "Date.hpp" +#include "IsoWeekday.hpp" +#include "WeekCalculator.hpp" +#include "WeekOf.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_IsoDate_create_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_IsoDate_create_mv1_result; + icu4x_IsoDate_create_mv1_result icu4x_IsoDate_create_mv1(int32_t year, uint8_t month, uint8_t day); + + typedef struct icu4x_IsoDate_from_string_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_IsoDate_from_string_mv1_result; + icu4x_IsoDate_from_string_mv1_result icu4x_IsoDate_from_string_mv1(const char* v_data, size_t v_len); + + icu4x::capi::IsoDate* icu4x_IsoDate_unix_epoch_mv1(void); + + icu4x::capi::Date* icu4x_IsoDate_to_calendar_mv1(const icu4x::capi::IsoDate* self, const icu4x::capi::Calendar* calendar); + + icu4x::capi::Date* icu4x_IsoDate_to_any_mv1(const icu4x::capi::IsoDate* self); + + uint16_t icu4x_IsoDate_day_of_year_mv1(const icu4x::capi::IsoDate* self); + + uint32_t icu4x_IsoDate_day_of_month_mv1(const icu4x::capi::IsoDate* self); + + icu4x::capi::IsoWeekday icu4x_IsoDate_day_of_week_mv1(const icu4x::capi::IsoDate* self); + + uint32_t icu4x_IsoDate_week_of_month_mv1(const icu4x::capi::IsoDate* self, icu4x::capi::IsoWeekday first_weekday); + + icu4x::capi::WeekOf icu4x_IsoDate_week_of_year_mv1(const icu4x::capi::IsoDate* self, const icu4x::capi::WeekCalculator* calculator); + + uint32_t icu4x_IsoDate_month_mv1(const icu4x::capi::IsoDate* self); + + int32_t icu4x_IsoDate_year_mv1(const icu4x::capi::IsoDate* self); + + bool icu4x_IsoDate_is_in_leap_year_mv1(const icu4x::capi::IsoDate* self); + + uint8_t icu4x_IsoDate_months_in_year_mv1(const icu4x::capi::IsoDate* self); + + uint8_t icu4x_IsoDate_days_in_month_mv1(const icu4x::capi::IsoDate* self); + + uint16_t icu4x_IsoDate_days_in_year_mv1(const icu4x::capi::IsoDate* self); + + + void icu4x_IsoDate_destroy_mv1(IsoDate* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError> icu4x::IsoDate::create(int32_t year, uint8_t month, uint8_t day) { + auto result = icu4x::capi::icu4x_IsoDate_create_mv1(year, + month, + day); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDate>>(std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError> icu4x::IsoDate::from_string(std::string_view v) { + auto result = icu4x::capi::icu4x_IsoDate_from_string_mv1(v.data(), + v.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDate>>(std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::IsoDate> icu4x::IsoDate::unix_epoch() { + auto result = icu4x::capi::icu4x_IsoDate_unix_epoch_mv1(); + return std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_calendar(const icu4x::Calendar& calendar) const { + auto result = icu4x::capi::icu4x_IsoDate_to_calendar_mv1(this->AsFFI(), + calendar.AsFFI()); + return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_any() const { + auto result = icu4x::capi::icu4x_IsoDate_to_any_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result)); +} + +inline uint16_t icu4x::IsoDate::day_of_year() const { + auto result = icu4x::capi::icu4x_IsoDate_day_of_year_mv1(this->AsFFI()); + return result; +} + +inline uint32_t icu4x::IsoDate::day_of_month() const { + auto result = icu4x::capi::icu4x_IsoDate_day_of_month_mv1(this->AsFFI()); + return result; +} + +inline icu4x::IsoWeekday icu4x::IsoDate::day_of_week() const { + auto result = icu4x::capi::icu4x_IsoDate_day_of_week_mv1(this->AsFFI()); + return icu4x::IsoWeekday::FromFFI(result); +} + +inline uint32_t icu4x::IsoDate::week_of_month(icu4x::IsoWeekday first_weekday) const { + auto result = icu4x::capi::icu4x_IsoDate_week_of_month_mv1(this->AsFFI(), + first_weekday.AsFFI()); + return result; +} + +inline icu4x::WeekOf icu4x::IsoDate::week_of_year(const icu4x::WeekCalculator& calculator) const { + auto result = icu4x::capi::icu4x_IsoDate_week_of_year_mv1(this->AsFFI(), + calculator.AsFFI()); + return icu4x::WeekOf::FromFFI(result); +} + +inline uint32_t icu4x::IsoDate::month() const { + auto result = icu4x::capi::icu4x_IsoDate_month_mv1(this->AsFFI()); + return result; +} + +inline int32_t icu4x::IsoDate::year() const { + auto result = icu4x::capi::icu4x_IsoDate_year_mv1(this->AsFFI()); + return result; +} + +inline bool icu4x::IsoDate::is_in_leap_year() const { + auto result = icu4x::capi::icu4x_IsoDate_is_in_leap_year_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::IsoDate::months_in_year() const { + auto result = icu4x::capi::icu4x_IsoDate_months_in_year_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::IsoDate::days_in_month() const { + auto result = icu4x::capi::icu4x_IsoDate_days_in_month_mv1(this->AsFFI()); + return result; +} + +inline uint16_t icu4x::IsoDate::days_in_year() const { + auto result = icu4x::capi::icu4x_IsoDate_days_in_year_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() const { + return reinterpret_cast<const icu4x::capi::IsoDate*>(this); +} + +inline icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() { + return reinterpret_cast<icu4x::capi::IsoDate*>(this); +} + +inline const icu4x::IsoDate* icu4x::IsoDate::FromFFI(const icu4x::capi::IsoDate* ptr) { + return reinterpret_cast<const icu4x::IsoDate*>(ptr); +} + +inline icu4x::IsoDate* icu4x::IsoDate::FromFFI(icu4x::capi::IsoDate* ptr) { + return reinterpret_cast<icu4x::IsoDate*>(ptr); +} + +inline void icu4x::IsoDate::operator delete(void* ptr) { + icu4x::capi::icu4x_IsoDate_destroy_mv1(reinterpret_cast<icu4x::capi::IsoDate*>(ptr)); +} + + +#endif // icu4x_IsoDate_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoDateTime.d.hpp b/ffi/capi/bindings/cpp/icu4x/IsoDateTime.d.hpp new file mode 100644 index 00000000000..754ff9bdf22 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoDateTime.d.hpp @@ -0,0 +1,107 @@ +#ifndef icu4x_IsoDateTime_D_HPP +#define icu4x_IsoDateTime_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Calendar; } +class Calendar; +namespace capi { struct DateTime; } +class DateTime; +namespace capi { struct IsoDate; } +class IsoDate; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Time; } +class Time; +namespace capi { struct WeekCalculator; } +class WeekCalculator; +struct WeekOf; +class CalendarError; +class CalendarParseError; +class IsoWeekday; +} + + +namespace icu4x { +namespace capi { + struct IsoDateTime; +} // namespace capi +} // namespace + +namespace icu4x { +class IsoDateTime { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarError> create(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); + + inline static std::unique_ptr<icu4x::IsoDateTime> from_date_and_time(const icu4x::IsoDate& date, const icu4x::Time& time); + + inline static diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarParseError> from_string(std::string_view v); + + inline static std::unique_ptr<icu4x::IsoDateTime> local_unix_epoch(); + + inline static std::unique_ptr<icu4x::IsoDateTime> from_minutes_since_local_unix_epoch(int32_t minutes); + + inline std::unique_ptr<icu4x::IsoDate> date() const; + + inline std::unique_ptr<icu4x::Time> time() const; + + inline std::unique_ptr<icu4x::DateTime> to_any() const; + + inline int32_t minutes_since_local_unix_epoch() const; + + inline std::unique_ptr<icu4x::DateTime> to_calendar(const icu4x::Calendar& calendar) const; + + inline uint8_t hour() const; + + inline uint8_t minute() const; + + inline uint8_t second() const; + + inline uint32_t nanosecond() const; + + inline uint16_t day_of_year() const; + + inline uint32_t day_of_month() const; + + inline icu4x::IsoWeekday day_of_week() const; + + inline uint32_t week_of_month(icu4x::IsoWeekday first_weekday) const; + + inline icu4x::WeekOf week_of_year(const icu4x::WeekCalculator& calculator) const; + + inline uint32_t month() const; + + inline int32_t year() const; + + inline bool is_in_leap_year() const; + + inline uint8_t months_in_year() const; + + inline uint8_t days_in_month() const; + + inline uint16_t days_in_year() const; + + inline const icu4x::capi::IsoDateTime* AsFFI() const; + inline icu4x::capi::IsoDateTime* AsFFI(); + inline static const icu4x::IsoDateTime* FromFFI(const icu4x::capi::IsoDateTime* ptr); + inline static icu4x::IsoDateTime* FromFFI(icu4x::capi::IsoDateTime* ptr); + inline static void operator delete(void* ptr); +private: + IsoDateTime() = delete; + IsoDateTime(const icu4x::IsoDateTime&) = delete; + IsoDateTime(icu4x::IsoDateTime&&) noexcept = delete; + IsoDateTime operator=(const icu4x::IsoDateTime&) = delete; + IsoDateTime operator=(icu4x::IsoDateTime&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_IsoDateTime_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoDateTime.hpp b/ffi/capi/bindings/cpp/icu4x/IsoDateTime.hpp new file mode 100644 index 00000000000..8d6361f913d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoDateTime.hpp @@ -0,0 +1,244 @@ +#ifndef icu4x_IsoDateTime_HPP +#define icu4x_IsoDateTime_HPP + +#include "IsoDateTime.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "Calendar.hpp" +#include "CalendarError.hpp" +#include "CalendarParseError.hpp" +#include "DateTime.hpp" +#include "IsoDate.hpp" +#include "IsoWeekday.hpp" +#include "Time.hpp" +#include "WeekCalculator.hpp" +#include "WeekOf.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_IsoDateTime_create_mv1_result {union {icu4x::capi::IsoDateTime* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_IsoDateTime_create_mv1_result; + icu4x_IsoDateTime_create_mv1_result icu4x_IsoDateTime_create_mv1(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); + + icu4x::capi::IsoDateTime* icu4x_IsoDateTime_from_date_and_time_mv1(const icu4x::capi::IsoDate* date, const icu4x::capi::Time* time); + + typedef struct icu4x_IsoDateTime_from_string_mv1_result {union {icu4x::capi::IsoDateTime* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_IsoDateTime_from_string_mv1_result; + icu4x_IsoDateTime_from_string_mv1_result icu4x_IsoDateTime_from_string_mv1(const char* v_data, size_t v_len); + + icu4x::capi::IsoDateTime* icu4x_IsoDateTime_local_unix_epoch_mv1(void); + + icu4x::capi::IsoDateTime* icu4x_IsoDateTime_from_minutes_since_local_unix_epoch_mv1(int32_t minutes); + + icu4x::capi::IsoDate* icu4x_IsoDateTime_date_mv1(const icu4x::capi::IsoDateTime* self); + + icu4x::capi::Time* icu4x_IsoDateTime_time_mv1(const icu4x::capi::IsoDateTime* self); + + icu4x::capi::DateTime* icu4x_IsoDateTime_to_any_mv1(const icu4x::capi::IsoDateTime* self); + + int32_t icu4x_IsoDateTime_minutes_since_local_unix_epoch_mv1(const icu4x::capi::IsoDateTime* self); + + icu4x::capi::DateTime* icu4x_IsoDateTime_to_calendar_mv1(const icu4x::capi::IsoDateTime* self, const icu4x::capi::Calendar* calendar); + + uint8_t icu4x_IsoDateTime_hour_mv1(const icu4x::capi::IsoDateTime* self); + + uint8_t icu4x_IsoDateTime_minute_mv1(const icu4x::capi::IsoDateTime* self); + + uint8_t icu4x_IsoDateTime_second_mv1(const icu4x::capi::IsoDateTime* self); + + uint32_t icu4x_IsoDateTime_nanosecond_mv1(const icu4x::capi::IsoDateTime* self); + + uint16_t icu4x_IsoDateTime_day_of_year_mv1(const icu4x::capi::IsoDateTime* self); + + uint32_t icu4x_IsoDateTime_day_of_month_mv1(const icu4x::capi::IsoDateTime* self); + + icu4x::capi::IsoWeekday icu4x_IsoDateTime_day_of_week_mv1(const icu4x::capi::IsoDateTime* self); + + uint32_t icu4x_IsoDateTime_week_of_month_mv1(const icu4x::capi::IsoDateTime* self, icu4x::capi::IsoWeekday first_weekday); + + icu4x::capi::WeekOf icu4x_IsoDateTime_week_of_year_mv1(const icu4x::capi::IsoDateTime* self, const icu4x::capi::WeekCalculator* calculator); + + uint32_t icu4x_IsoDateTime_month_mv1(const icu4x::capi::IsoDateTime* self); + + int32_t icu4x_IsoDateTime_year_mv1(const icu4x::capi::IsoDateTime* self); + + bool icu4x_IsoDateTime_is_in_leap_year_mv1(const icu4x::capi::IsoDateTime* self); + + uint8_t icu4x_IsoDateTime_months_in_year_mv1(const icu4x::capi::IsoDateTime* self); + + uint8_t icu4x_IsoDateTime_days_in_month_mv1(const icu4x::capi::IsoDateTime* self); + + uint16_t icu4x_IsoDateTime_days_in_year_mv1(const icu4x::capi::IsoDateTime* self); + + + void icu4x_IsoDateTime_destroy_mv1(IsoDateTime* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarError> icu4x::IsoDateTime::create(int32_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond) { + auto result = icu4x::capi::icu4x_IsoDateTime_create_mv1(year, + month, + day, + hour, + minute, + second, + nanosecond); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDateTime>>(std::unique_ptr<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::IsoDateTime> icu4x::IsoDateTime::from_date_and_time(const icu4x::IsoDate& date, const icu4x::Time& time) { + auto result = icu4x::capi::icu4x_IsoDateTime_from_date_and_time_mv1(date.AsFFI(), + time.AsFFI()); + return std::unique_ptr<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarParseError> icu4x::IsoDateTime::from_string(std::string_view v) { + auto result = icu4x::capi::icu4x_IsoDateTime_from_string_mv1(v.data(), + v.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDateTime>>(std::unique_ptr<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDateTime>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::IsoDateTime> icu4x::IsoDateTime::local_unix_epoch() { + auto result = icu4x::capi::icu4x_IsoDateTime_local_unix_epoch_mv1(); + return std::unique_ptr<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::IsoDateTime> icu4x::IsoDateTime::from_minutes_since_local_unix_epoch(int32_t minutes) { + auto result = icu4x::capi::icu4x_IsoDateTime_from_minutes_since_local_unix_epoch_mv1(minutes); + return std::unique_ptr<icu4x::IsoDateTime>(icu4x::IsoDateTime::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::IsoDate> icu4x::IsoDateTime::date() const { + auto result = icu4x::capi::icu4x_IsoDateTime_date_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::Time> icu4x::IsoDateTime::time() const { + auto result = icu4x::capi::icu4x_IsoDateTime_time_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::DateTime> icu4x::IsoDateTime::to_any() const { + auto result = icu4x::capi::icu4x_IsoDateTime_to_any_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::DateTime>(icu4x::DateTime::FromFFI(result)); +} + +inline int32_t icu4x::IsoDateTime::minutes_since_local_unix_epoch() const { + auto result = icu4x::capi::icu4x_IsoDateTime_minutes_since_local_unix_epoch_mv1(this->AsFFI()); + return result; +} + +inline std::unique_ptr<icu4x::DateTime> icu4x::IsoDateTime::to_calendar(const icu4x::Calendar& calendar) const { + auto result = icu4x::capi::icu4x_IsoDateTime_to_calendar_mv1(this->AsFFI(), + calendar.AsFFI()); + return std::unique_ptr<icu4x::DateTime>(icu4x::DateTime::FromFFI(result)); +} + +inline uint8_t icu4x::IsoDateTime::hour() const { + auto result = icu4x::capi::icu4x_IsoDateTime_hour_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::IsoDateTime::minute() const { + auto result = icu4x::capi::icu4x_IsoDateTime_minute_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::IsoDateTime::second() const { + auto result = icu4x::capi::icu4x_IsoDateTime_second_mv1(this->AsFFI()); + return result; +} + +inline uint32_t icu4x::IsoDateTime::nanosecond() const { + auto result = icu4x::capi::icu4x_IsoDateTime_nanosecond_mv1(this->AsFFI()); + return result; +} + +inline uint16_t icu4x::IsoDateTime::day_of_year() const { + auto result = icu4x::capi::icu4x_IsoDateTime_day_of_year_mv1(this->AsFFI()); + return result; +} + +inline uint32_t icu4x::IsoDateTime::day_of_month() const { + auto result = icu4x::capi::icu4x_IsoDateTime_day_of_month_mv1(this->AsFFI()); + return result; +} + +inline icu4x::IsoWeekday icu4x::IsoDateTime::day_of_week() const { + auto result = icu4x::capi::icu4x_IsoDateTime_day_of_week_mv1(this->AsFFI()); + return icu4x::IsoWeekday::FromFFI(result); +} + +inline uint32_t icu4x::IsoDateTime::week_of_month(icu4x::IsoWeekday first_weekday) const { + auto result = icu4x::capi::icu4x_IsoDateTime_week_of_month_mv1(this->AsFFI(), + first_weekday.AsFFI()); + return result; +} + +inline icu4x::WeekOf icu4x::IsoDateTime::week_of_year(const icu4x::WeekCalculator& calculator) const { + auto result = icu4x::capi::icu4x_IsoDateTime_week_of_year_mv1(this->AsFFI(), + calculator.AsFFI()); + return icu4x::WeekOf::FromFFI(result); +} + +inline uint32_t icu4x::IsoDateTime::month() const { + auto result = icu4x::capi::icu4x_IsoDateTime_month_mv1(this->AsFFI()); + return result; +} + +inline int32_t icu4x::IsoDateTime::year() const { + auto result = icu4x::capi::icu4x_IsoDateTime_year_mv1(this->AsFFI()); + return result; +} + +inline bool icu4x::IsoDateTime::is_in_leap_year() const { + auto result = icu4x::capi::icu4x_IsoDateTime_is_in_leap_year_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::IsoDateTime::months_in_year() const { + auto result = icu4x::capi::icu4x_IsoDateTime_months_in_year_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::IsoDateTime::days_in_month() const { + auto result = icu4x::capi::icu4x_IsoDateTime_days_in_month_mv1(this->AsFFI()); + return result; +} + +inline uint16_t icu4x::IsoDateTime::days_in_year() const { + auto result = icu4x::capi::icu4x_IsoDateTime_days_in_year_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::IsoDateTime* icu4x::IsoDateTime::AsFFI() const { + return reinterpret_cast<const icu4x::capi::IsoDateTime*>(this); +} + +inline icu4x::capi::IsoDateTime* icu4x::IsoDateTime::AsFFI() { + return reinterpret_cast<icu4x::capi::IsoDateTime*>(this); +} + +inline const icu4x::IsoDateTime* icu4x::IsoDateTime::FromFFI(const icu4x::capi::IsoDateTime* ptr) { + return reinterpret_cast<const icu4x::IsoDateTime*>(ptr); +} + +inline icu4x::IsoDateTime* icu4x::IsoDateTime::FromFFI(icu4x::capi::IsoDateTime* ptr) { + return reinterpret_cast<icu4x::IsoDateTime*>(ptr); +} + +inline void icu4x::IsoDateTime::operator delete(void* ptr) { + icu4x::capi::icu4x_IsoDateTime_destroy_mv1(reinterpret_cast<icu4x::capi::IsoDateTime*>(ptr)); +} + + +#endif // icu4x_IsoDateTime_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneFormat.d.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneFormat.d.hpp similarity index 69% rename from ffi/capi/bindings/cpp/IsoTimeZoneFormat.d.hpp rename to ffi/capi/bindings/cpp/icu4x/IsoTimeZoneFormat.d.hpp index ecafc701404..3d119b33cd9 100644 --- a/ffi/capi/bindings/cpp/IsoTimeZoneFormat.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneFormat.d.hpp @@ -1,5 +1,5 @@ -#ifndef IsoTimeZoneFormat_D_HPP -#define IsoTimeZoneFormat_D_HPP +#ifndef icu4x_IsoTimeZoneFormat_D_HPP +#define icu4x_IsoTimeZoneFormat_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum IsoTimeZoneFormat { IsoTimeZoneFormat_Basic = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class IsoTimeZoneFormat { public: enum Value { @@ -37,11 +38,11 @@ class IsoTimeZoneFormat { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::IsoTimeZoneFormat AsFFI() const; - inline static IsoTimeZoneFormat FromFFI(diplomat::capi::IsoTimeZoneFormat c_enum); + inline icu4x::capi::IsoTimeZoneFormat AsFFI() const; + inline static icu4x::IsoTimeZoneFormat FromFFI(icu4x::capi::IsoTimeZoneFormat c_enum); private: Value value; }; - -#endif // IsoTimeZoneFormat_D_HPP +} // namespace +#endif // icu4x_IsoTimeZoneFormat_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneFormat.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneFormat.hpp new file mode 100644 index 00000000000..9111574060d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneFormat.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_IsoTimeZoneFormat_HPP +#define icu4x_IsoTimeZoneFormat_HPP + +#include "IsoTimeZoneFormat.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::IsoTimeZoneFormat icu4x::IsoTimeZoneFormat::AsFFI() const { + return static_cast<icu4x::capi::IsoTimeZoneFormat>(value); +} + +inline icu4x::IsoTimeZoneFormat icu4x::IsoTimeZoneFormat::FromFFI(icu4x::capi::IsoTimeZoneFormat c_enum) { + switch (c_enum) { + case icu4x::capi::IsoTimeZoneFormat_Basic: + case icu4x::capi::IsoTimeZoneFormat_Extended: + case icu4x::capi::IsoTimeZoneFormat_UtcBasic: + case icu4x::capi::IsoTimeZoneFormat_UtcExtended: + return static_cast<icu4x::IsoTimeZoneFormat::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_IsoTimeZoneFormat_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneMinuteDisplay.d.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneMinuteDisplay.d.hpp similarity index 64% rename from ffi/capi/bindings/cpp/IsoTimeZoneMinuteDisplay.d.hpp rename to ffi/capi/bindings/cpp/icu4x/IsoTimeZoneMinuteDisplay.d.hpp index e5d0392cada..c309b1bcd39 100644 --- a/ffi/capi/bindings/cpp/IsoTimeZoneMinuteDisplay.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneMinuteDisplay.d.hpp @@ -1,5 +1,5 @@ -#ifndef IsoTimeZoneMinuteDisplay_D_HPP -#define IsoTimeZoneMinuteDisplay_D_HPP +#ifndef icu4x_IsoTimeZoneMinuteDisplay_D_HPP +#define icu4x_IsoTimeZoneMinuteDisplay_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum IsoTimeZoneMinuteDisplay { IsoTimeZoneMinuteDisplay_Required = 0, @@ -19,6 +19,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class IsoTimeZoneMinuteDisplay { public: enum Value { @@ -33,11 +34,11 @@ class IsoTimeZoneMinuteDisplay { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::IsoTimeZoneMinuteDisplay AsFFI() const; - inline static IsoTimeZoneMinuteDisplay FromFFI(diplomat::capi::IsoTimeZoneMinuteDisplay c_enum); + inline icu4x::capi::IsoTimeZoneMinuteDisplay AsFFI() const; + inline static icu4x::IsoTimeZoneMinuteDisplay FromFFI(icu4x::capi::IsoTimeZoneMinuteDisplay c_enum); private: Value value; }; - -#endif // IsoTimeZoneMinuteDisplay_D_HPP +} // namespace +#endif // icu4x_IsoTimeZoneMinuteDisplay_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneMinuteDisplay.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneMinuteDisplay.hpp new file mode 100644 index 00000000000..35a4dceda30 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneMinuteDisplay.hpp @@ -0,0 +1,37 @@ +#ifndef icu4x_IsoTimeZoneMinuteDisplay_HPP +#define icu4x_IsoTimeZoneMinuteDisplay_HPP + +#include "IsoTimeZoneMinuteDisplay.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::IsoTimeZoneMinuteDisplay icu4x::IsoTimeZoneMinuteDisplay::AsFFI() const { + return static_cast<icu4x::capi::IsoTimeZoneMinuteDisplay>(value); +} + +inline icu4x::IsoTimeZoneMinuteDisplay icu4x::IsoTimeZoneMinuteDisplay::FromFFI(icu4x::capi::IsoTimeZoneMinuteDisplay c_enum) { + switch (c_enum) { + case icu4x::capi::IsoTimeZoneMinuteDisplay_Required: + case icu4x::capi::IsoTimeZoneMinuteDisplay_Optional: + return static_cast<icu4x::IsoTimeZoneMinuteDisplay::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_IsoTimeZoneMinuteDisplay_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.d.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.d.hpp new file mode 100644 index 00000000000..e5b102a12d3 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.d.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_IsoTimeZoneOptions_D_HPP +#define icu4x_IsoTimeZoneOptions_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "IsoTimeZoneFormat.d.hpp" +#include "IsoTimeZoneMinuteDisplay.d.hpp" +#include "IsoTimeZoneSecondDisplay.d.hpp" + +namespace icu4x { +class IsoTimeZoneFormat; +class IsoTimeZoneMinuteDisplay; +class IsoTimeZoneSecondDisplay; +} + + +namespace icu4x { +namespace capi { + struct IsoTimeZoneOptions { + icu4x::capi::IsoTimeZoneFormat format; + icu4x::capi::IsoTimeZoneMinuteDisplay minutes; + icu4x::capi::IsoTimeZoneSecondDisplay seconds; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct IsoTimeZoneOptions { + icu4x::IsoTimeZoneFormat format; + icu4x::IsoTimeZoneMinuteDisplay minutes; + icu4x::IsoTimeZoneSecondDisplay seconds; + + inline icu4x::capi::IsoTimeZoneOptions AsFFI() const; + inline static icu4x::IsoTimeZoneOptions FromFFI(icu4x::capi::IsoTimeZoneOptions c_struct); +}; + +} // namespace +#endif // icu4x_IsoTimeZoneOptions_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.hpp new file mode 100644 index 00000000000..7aee14ff275 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneOptions.hpp @@ -0,0 +1,45 @@ +#ifndef icu4x_IsoTimeZoneOptions_HPP +#define icu4x_IsoTimeZoneOptions_HPP + +#include "IsoTimeZoneOptions.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "IsoTimeZoneFormat.hpp" +#include "IsoTimeZoneMinuteDisplay.hpp" +#include "IsoTimeZoneSecondDisplay.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::IsoTimeZoneOptions icu4x::IsoTimeZoneOptions::AsFFI() const { + return icu4x::capi::IsoTimeZoneOptions { + /* .format = */ format.AsFFI(), + /* .minutes = */ minutes.AsFFI(), + /* .seconds = */ seconds.AsFFI(), + }; +} + +inline icu4x::IsoTimeZoneOptions icu4x::IsoTimeZoneOptions::FromFFI(icu4x::capi::IsoTimeZoneOptions c_struct) { + return icu4x::IsoTimeZoneOptions { + /* .format = */ icu4x::IsoTimeZoneFormat::FromFFI(c_struct.format), + /* .minutes = */ icu4x::IsoTimeZoneMinuteDisplay::FromFFI(c_struct.minutes), + /* .seconds = */ icu4x::IsoTimeZoneSecondDisplay::FromFFI(c_struct.seconds), + }; +} + + +#endif // icu4x_IsoTimeZoneOptions_HPP diff --git a/ffi/capi/bindings/cpp/IsoTimeZoneSecondDisplay.d.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneSecondDisplay.d.hpp similarity index 64% rename from ffi/capi/bindings/cpp/IsoTimeZoneSecondDisplay.d.hpp rename to ffi/capi/bindings/cpp/icu4x/IsoTimeZoneSecondDisplay.d.hpp index cfb7fbc29ad..683414c6028 100644 --- a/ffi/capi/bindings/cpp/IsoTimeZoneSecondDisplay.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneSecondDisplay.d.hpp @@ -1,5 +1,5 @@ -#ifndef IsoTimeZoneSecondDisplay_D_HPP -#define IsoTimeZoneSecondDisplay_D_HPP +#ifndef icu4x_IsoTimeZoneSecondDisplay_D_HPP +#define icu4x_IsoTimeZoneSecondDisplay_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum IsoTimeZoneSecondDisplay { IsoTimeZoneSecondDisplay_Optional = 0, @@ -19,6 +19,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class IsoTimeZoneSecondDisplay { public: enum Value { @@ -33,11 +34,11 @@ class IsoTimeZoneSecondDisplay { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::IsoTimeZoneSecondDisplay AsFFI() const; - inline static IsoTimeZoneSecondDisplay FromFFI(diplomat::capi::IsoTimeZoneSecondDisplay c_enum); + inline icu4x::capi::IsoTimeZoneSecondDisplay AsFFI() const; + inline static icu4x::IsoTimeZoneSecondDisplay FromFFI(icu4x::capi::IsoTimeZoneSecondDisplay c_enum); private: Value value; }; - -#endif // IsoTimeZoneSecondDisplay_D_HPP +} // namespace +#endif // icu4x_IsoTimeZoneSecondDisplay_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneSecondDisplay.hpp b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneSecondDisplay.hpp new file mode 100644 index 00000000000..470291d5fa8 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoTimeZoneSecondDisplay.hpp @@ -0,0 +1,37 @@ +#ifndef icu4x_IsoTimeZoneSecondDisplay_HPP +#define icu4x_IsoTimeZoneSecondDisplay_HPP + +#include "IsoTimeZoneSecondDisplay.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::IsoTimeZoneSecondDisplay icu4x::IsoTimeZoneSecondDisplay::AsFFI() const { + return static_cast<icu4x::capi::IsoTimeZoneSecondDisplay>(value); +} + +inline icu4x::IsoTimeZoneSecondDisplay icu4x::IsoTimeZoneSecondDisplay::FromFFI(icu4x::capi::IsoTimeZoneSecondDisplay c_enum) { + switch (c_enum) { + case icu4x::capi::IsoTimeZoneSecondDisplay_Optional: + case icu4x::capi::IsoTimeZoneSecondDisplay_Never: + return static_cast<icu4x::IsoTimeZoneSecondDisplay::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_IsoTimeZoneSecondDisplay_HPP diff --git a/ffi/capi/bindings/cpp/IsoWeekday.d.hpp b/ffi/capi/bindings/cpp/icu4x/IsoWeekday.d.hpp similarity index 74% rename from ffi/capi/bindings/cpp/IsoWeekday.d.hpp rename to ffi/capi/bindings/cpp/icu4x/IsoWeekday.d.hpp index 32ad5fd77dc..280cf605b26 100644 --- a/ffi/capi/bindings/cpp/IsoWeekday.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/IsoWeekday.d.hpp @@ -1,5 +1,5 @@ -#ifndef IsoWeekday_D_HPP -#define IsoWeekday_D_HPP +#ifndef icu4x_IsoWeekday_D_HPP +#define icu4x_IsoWeekday_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum IsoWeekday { IsoWeekday_Monday = 1, @@ -24,6 +24,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class IsoWeekday { public: enum Value { @@ -43,11 +44,11 @@ class IsoWeekday { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::IsoWeekday AsFFI() const; - inline static IsoWeekday FromFFI(diplomat::capi::IsoWeekday c_enum); + inline icu4x::capi::IsoWeekday AsFFI() const; + inline static icu4x::IsoWeekday FromFFI(icu4x::capi::IsoWeekday c_enum); private: Value value; }; - -#endif // IsoWeekday_D_HPP +} // namespace +#endif // icu4x_IsoWeekday_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/IsoWeekday.hpp b/ffi/capi/bindings/cpp/icu4x/IsoWeekday.hpp new file mode 100644 index 00000000000..8ff27b8ea2a --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/IsoWeekday.hpp @@ -0,0 +1,42 @@ +#ifndef icu4x_IsoWeekday_HPP +#define icu4x_IsoWeekday_HPP + +#include "IsoWeekday.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::IsoWeekday icu4x::IsoWeekday::AsFFI() const { + return static_cast<icu4x::capi::IsoWeekday>(value); +} + +inline icu4x::IsoWeekday icu4x::IsoWeekday::FromFFI(icu4x::capi::IsoWeekday c_enum) { + switch (c_enum) { + case icu4x::capi::IsoWeekday_Monday: + case icu4x::capi::IsoWeekday_Tuesday: + case icu4x::capi::IsoWeekday_Wednesday: + case icu4x::capi::IsoWeekday_Thursday: + case icu4x::capi::IsoWeekday_Friday: + case icu4x::capi::IsoWeekday_Saturday: + case icu4x::capi::IsoWeekday_Sunday: + return static_cast<icu4x::IsoWeekday::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_IsoWeekday_HPP diff --git a/ffi/capi/bindings/cpp/LanguageDisplay.d.hpp b/ffi/capi/bindings/cpp/icu4x/LanguageDisplay.d.hpp similarity index 66% rename from ffi/capi/bindings/cpp/LanguageDisplay.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LanguageDisplay.d.hpp index 196a775f954..d5c8f057308 100644 --- a/ffi/capi/bindings/cpp/LanguageDisplay.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LanguageDisplay.d.hpp @@ -1,5 +1,5 @@ -#ifndef LanguageDisplay_D_HPP -#define LanguageDisplay_D_HPP +#ifndef icu4x_LanguageDisplay_D_HPP +#define icu4x_LanguageDisplay_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LanguageDisplay { LanguageDisplay_Dialect = 0, @@ -19,6 +19,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LanguageDisplay { public: enum Value { @@ -33,11 +34,11 @@ class LanguageDisplay { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LanguageDisplay AsFFI() const; - inline static LanguageDisplay FromFFI(diplomat::capi::LanguageDisplay c_enum); + inline icu4x::capi::LanguageDisplay AsFFI() const; + inline static icu4x::LanguageDisplay FromFFI(icu4x::capi::LanguageDisplay c_enum); private: Value value; }; - -#endif // LanguageDisplay_D_HPP +} // namespace +#endif // icu4x_LanguageDisplay_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LanguageDisplay.hpp b/ffi/capi/bindings/cpp/icu4x/LanguageDisplay.hpp new file mode 100644 index 00000000000..0d3b3ac2449 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LanguageDisplay.hpp @@ -0,0 +1,37 @@ +#ifndef icu4x_LanguageDisplay_HPP +#define icu4x_LanguageDisplay_HPP + +#include "LanguageDisplay.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LanguageDisplay icu4x::LanguageDisplay::AsFFI() const { + return static_cast<icu4x::capi::LanguageDisplay>(value); +} + +inline icu4x::LanguageDisplay icu4x::LanguageDisplay::FromFFI(icu4x::capi::LanguageDisplay c_enum) { + switch (c_enum) { + case icu4x::capi::LanguageDisplay_Dialect: + case icu4x::capi::LanguageDisplay_Standard: + return static_cast<icu4x::LanguageDisplay::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LanguageDisplay_HPP diff --git a/ffi/capi/bindings/cpp/LeadingAdjustment.d.hpp b/ffi/capi/bindings/cpp/icu4x/LeadingAdjustment.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/LeadingAdjustment.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LeadingAdjustment.d.hpp index 767519ecd23..2da9d1fdab2 100644 --- a/ffi/capi/bindings/cpp/LeadingAdjustment.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LeadingAdjustment.d.hpp @@ -1,5 +1,5 @@ -#ifndef LeadingAdjustment_D_HPP -#define LeadingAdjustment_D_HPP +#ifndef icu4x_LeadingAdjustment_D_HPP +#define icu4x_LeadingAdjustment_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LeadingAdjustment { LeadingAdjustment_Auto = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LeadingAdjustment { public: enum Value { @@ -35,11 +36,11 @@ class LeadingAdjustment { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LeadingAdjustment AsFFI() const; - inline static LeadingAdjustment FromFFI(diplomat::capi::LeadingAdjustment c_enum); + inline icu4x::capi::LeadingAdjustment AsFFI() const; + inline static icu4x::LeadingAdjustment FromFFI(icu4x::capi::LeadingAdjustment c_enum); private: Value value; }; - -#endif // LeadingAdjustment_D_HPP +} // namespace +#endif // icu4x_LeadingAdjustment_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LeadingAdjustment.hpp b/ffi/capi/bindings/cpp/icu4x/LeadingAdjustment.hpp new file mode 100644 index 00000000000..6ee8793fa47 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LeadingAdjustment.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_LeadingAdjustment_HPP +#define icu4x_LeadingAdjustment_HPP + +#include "LeadingAdjustment.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LeadingAdjustment icu4x::LeadingAdjustment::AsFFI() const { + return static_cast<icu4x::capi::LeadingAdjustment>(value); +} + +inline icu4x::LeadingAdjustment icu4x::LeadingAdjustment::FromFFI(icu4x::capi::LeadingAdjustment c_enum) { + switch (c_enum) { + case icu4x::capi::LeadingAdjustment_Auto: + case icu4x::capi::LeadingAdjustment_None: + case icu4x::capi::LeadingAdjustment_ToCased: + return static_cast<icu4x::LeadingAdjustment::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LeadingAdjustment_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.d.hpp new file mode 100644 index 00000000000..085f687f226 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_LineBreakIteratorLatin1_D_HPP +#define icu4x_LineBreakIteratorLatin1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct LineBreakIteratorLatin1; +} // namespace capi +} // namespace + +namespace icu4x { +class LineBreakIteratorLatin1 { +public: + + inline int32_t next(); + + inline const icu4x::capi::LineBreakIteratorLatin1* AsFFI() const; + inline icu4x::capi::LineBreakIteratorLatin1* AsFFI(); + inline static const icu4x::LineBreakIteratorLatin1* FromFFI(const icu4x::capi::LineBreakIteratorLatin1* ptr); + inline static icu4x::LineBreakIteratorLatin1* FromFFI(icu4x::capi::LineBreakIteratorLatin1* ptr); + inline static void operator delete(void* ptr); +private: + LineBreakIteratorLatin1() = delete; + LineBreakIteratorLatin1(const icu4x::LineBreakIteratorLatin1&) = delete; + LineBreakIteratorLatin1(icu4x::LineBreakIteratorLatin1&&) noexcept = delete; + LineBreakIteratorLatin1 operator=(const icu4x::LineBreakIteratorLatin1&) = delete; + LineBreakIteratorLatin1 operator=(icu4x::LineBreakIteratorLatin1&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LineBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.hpp new file mode 100644 index 00000000000..1648b11cc5d --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorLatin1.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_LineBreakIteratorLatin1_HPP +#define icu4x_LineBreakIteratorLatin1_HPP + +#include "LineBreakIteratorLatin1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_LineBreakIteratorLatin1_next_mv1(icu4x::capi::LineBreakIteratorLatin1* self); + + + void icu4x_LineBreakIteratorLatin1_destroy_mv1(LineBreakIteratorLatin1* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::LineBreakIteratorLatin1::next() { + auto result = icu4x::capi::icu4x_LineBreakIteratorLatin1_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LineBreakIteratorLatin1*>(this); +} + +inline icu4x::capi::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::AsFFI() { + return reinterpret_cast<icu4x::capi::LineBreakIteratorLatin1*>(this); +} + +inline const icu4x::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::FromFFI(const icu4x::capi::LineBreakIteratorLatin1* ptr) { + return reinterpret_cast<const icu4x::LineBreakIteratorLatin1*>(ptr); +} + +inline icu4x::LineBreakIteratorLatin1* icu4x::LineBreakIteratorLatin1::FromFFI(icu4x::capi::LineBreakIteratorLatin1* ptr) { + return reinterpret_cast<icu4x::LineBreakIteratorLatin1*>(ptr); +} + +inline void icu4x::LineBreakIteratorLatin1::operator delete(void* ptr) { + icu4x::capi::icu4x_LineBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::LineBreakIteratorLatin1*>(ptr)); +} + + +#endif // icu4x_LineBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.d.hpp new file mode 100644 index 00000000000..198408e23db --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_LineBreakIteratorUtf16_D_HPP +#define icu4x_LineBreakIteratorUtf16_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct LineBreakIteratorUtf16; +} // namespace capi +} // namespace + +namespace icu4x { +class LineBreakIteratorUtf16 { +public: + + inline int32_t next(); + + inline const icu4x::capi::LineBreakIteratorUtf16* AsFFI() const; + inline icu4x::capi::LineBreakIteratorUtf16* AsFFI(); + inline static const icu4x::LineBreakIteratorUtf16* FromFFI(const icu4x::capi::LineBreakIteratorUtf16* ptr); + inline static icu4x::LineBreakIteratorUtf16* FromFFI(icu4x::capi::LineBreakIteratorUtf16* ptr); + inline static void operator delete(void* ptr); +private: + LineBreakIteratorUtf16() = delete; + LineBreakIteratorUtf16(const icu4x::LineBreakIteratorUtf16&) = delete; + LineBreakIteratorUtf16(icu4x::LineBreakIteratorUtf16&&) noexcept = delete; + LineBreakIteratorUtf16 operator=(const icu4x::LineBreakIteratorUtf16&) = delete; + LineBreakIteratorUtf16 operator=(icu4x::LineBreakIteratorUtf16&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LineBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.hpp new file mode 100644 index 00000000000..8e071ca5f2f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf16.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_LineBreakIteratorUtf16_HPP +#define icu4x_LineBreakIteratorUtf16_HPP + +#include "LineBreakIteratorUtf16.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_LineBreakIteratorUtf16_next_mv1(icu4x::capi::LineBreakIteratorUtf16* self); + + + void icu4x_LineBreakIteratorUtf16_destroy_mv1(LineBreakIteratorUtf16* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::LineBreakIteratorUtf16::next() { + auto result = icu4x::capi::icu4x_LineBreakIteratorUtf16_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LineBreakIteratorUtf16*>(this); +} + +inline icu4x::capi::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::AsFFI() { + return reinterpret_cast<icu4x::capi::LineBreakIteratorUtf16*>(this); +} + +inline const icu4x::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::FromFFI(const icu4x::capi::LineBreakIteratorUtf16* ptr) { + return reinterpret_cast<const icu4x::LineBreakIteratorUtf16*>(ptr); +} + +inline icu4x::LineBreakIteratorUtf16* icu4x::LineBreakIteratorUtf16::FromFFI(icu4x::capi::LineBreakIteratorUtf16* ptr) { + return reinterpret_cast<icu4x::LineBreakIteratorUtf16*>(ptr); +} + +inline void icu4x::LineBreakIteratorUtf16::operator delete(void* ptr) { + icu4x::capi::icu4x_LineBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::LineBreakIteratorUtf16*>(ptr)); +} + + +#endif // icu4x_LineBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.d.hpp new file mode 100644 index 00000000000..8a1e5fae86c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_LineBreakIteratorUtf8_D_HPP +#define icu4x_LineBreakIteratorUtf8_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct LineBreakIteratorUtf8; +} // namespace capi +} // namespace + +namespace icu4x { +class LineBreakIteratorUtf8 { +public: + + inline int32_t next(); + + inline const icu4x::capi::LineBreakIteratorUtf8* AsFFI() const; + inline icu4x::capi::LineBreakIteratorUtf8* AsFFI(); + inline static const icu4x::LineBreakIteratorUtf8* FromFFI(const icu4x::capi::LineBreakIteratorUtf8* ptr); + inline static icu4x::LineBreakIteratorUtf8* FromFFI(icu4x::capi::LineBreakIteratorUtf8* ptr); + inline static void operator delete(void* ptr); +private: + LineBreakIteratorUtf8() = delete; + LineBreakIteratorUtf8(const icu4x::LineBreakIteratorUtf8&) = delete; + LineBreakIteratorUtf8(icu4x::LineBreakIteratorUtf8&&) noexcept = delete; + LineBreakIteratorUtf8 operator=(const icu4x::LineBreakIteratorUtf8&) = delete; + LineBreakIteratorUtf8 operator=(icu4x::LineBreakIteratorUtf8&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LineBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.hpp new file mode 100644 index 00000000000..0d9ae0c3df3 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakIteratorUtf8.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_LineBreakIteratorUtf8_HPP +#define icu4x_LineBreakIteratorUtf8_HPP + +#include "LineBreakIteratorUtf8.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_LineBreakIteratorUtf8_next_mv1(icu4x::capi::LineBreakIteratorUtf8* self); + + + void icu4x_LineBreakIteratorUtf8_destroy_mv1(LineBreakIteratorUtf8* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::LineBreakIteratorUtf8::next() { + auto result = icu4x::capi::icu4x_LineBreakIteratorUtf8_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LineBreakIteratorUtf8*>(this); +} + +inline icu4x::capi::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::AsFFI() { + return reinterpret_cast<icu4x::capi::LineBreakIteratorUtf8*>(this); +} + +inline const icu4x::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::FromFFI(const icu4x::capi::LineBreakIteratorUtf8* ptr) { + return reinterpret_cast<const icu4x::LineBreakIteratorUtf8*>(ptr); +} + +inline icu4x::LineBreakIteratorUtf8* icu4x::LineBreakIteratorUtf8::FromFFI(icu4x::capi::LineBreakIteratorUtf8* ptr) { + return reinterpret_cast<icu4x::LineBreakIteratorUtf8*>(ptr); +} + +inline void icu4x::LineBreakIteratorUtf8::operator delete(void* ptr) { + icu4x::capi::icu4x_LineBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::LineBreakIteratorUtf8*>(ptr)); +} + + +#endif // icu4x_LineBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.d.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.d.hpp new file mode 100644 index 00000000000..d787fe7a427 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.d.hpp @@ -0,0 +1,42 @@ +#ifndef icu4x_LineBreakOptionsV1_D_HPP +#define icu4x_LineBreakOptionsV1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "LineBreakStrictness.d.hpp" +#include "LineBreakWordOption.d.hpp" + +namespace icu4x { +class LineBreakStrictness; +class LineBreakWordOption; +} + + +namespace icu4x { +namespace capi { + struct LineBreakOptionsV1 { + icu4x::capi::LineBreakStrictness strictness; + icu4x::capi::LineBreakWordOption word_option; + bool ja_zh; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct LineBreakOptionsV1 { + icu4x::LineBreakStrictness strictness; + icu4x::LineBreakWordOption word_option; + bool ja_zh; + + inline icu4x::capi::LineBreakOptionsV1 AsFFI() const; + inline static icu4x::LineBreakOptionsV1 FromFFI(icu4x::capi::LineBreakOptionsV1 c_struct); +}; + +} // namespace +#endif // icu4x_LineBreakOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.hpp new file mode 100644 index 00000000000..e1763d160dc --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakOptionsV1.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_LineBreakOptionsV1_HPP +#define icu4x_LineBreakOptionsV1_HPP + +#include "LineBreakOptionsV1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "LineBreakStrictness.hpp" +#include "LineBreakWordOption.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::LineBreakOptionsV1 icu4x::LineBreakOptionsV1::AsFFI() const { + return icu4x::capi::LineBreakOptionsV1 { + /* .strictness = */ strictness.AsFFI(), + /* .word_option = */ word_option.AsFFI(), + /* .ja_zh = */ ja_zh, + }; +} + +inline icu4x::LineBreakOptionsV1 icu4x::LineBreakOptionsV1::FromFFI(icu4x::capi::LineBreakOptionsV1 c_struct) { + return icu4x::LineBreakOptionsV1 { + /* .strictness = */ icu4x::LineBreakStrictness::FromFFI(c_struct.strictness), + /* .word_option = */ icu4x::LineBreakWordOption::FromFFI(c_struct.word_option), + /* .ja_zh = */ c_struct.ja_zh, + }; +} + + +#endif // icu4x_LineBreakOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakStrictness.d.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakStrictness.d.hpp similarity index 68% rename from ffi/capi/bindings/cpp/LineBreakStrictness.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LineBreakStrictness.d.hpp index c3b3f2ad1ea..2b7059c589d 100644 --- a/ffi/capi/bindings/cpp/LineBreakStrictness.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakStrictness.d.hpp @@ -1,5 +1,5 @@ -#ifndef LineBreakStrictness_D_HPP -#define LineBreakStrictness_D_HPP +#ifndef icu4x_LineBreakStrictness_D_HPP +#define icu4x_LineBreakStrictness_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LineBreakStrictness { LineBreakStrictness_Loose = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LineBreakStrictness { public: enum Value { @@ -37,11 +38,11 @@ class LineBreakStrictness { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LineBreakStrictness AsFFI() const; - inline static LineBreakStrictness FromFFI(diplomat::capi::LineBreakStrictness c_enum); + inline icu4x::capi::LineBreakStrictness AsFFI() const; + inline static icu4x::LineBreakStrictness FromFFI(icu4x::capi::LineBreakStrictness c_enum); private: Value value; }; - -#endif // LineBreakStrictness_D_HPP +} // namespace +#endif // icu4x_LineBreakStrictness_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakStrictness.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakStrictness.hpp new file mode 100644 index 00000000000..2148cd8a3ad --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakStrictness.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_LineBreakStrictness_HPP +#define icu4x_LineBreakStrictness_HPP + +#include "LineBreakStrictness.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LineBreakStrictness icu4x::LineBreakStrictness::AsFFI() const { + return static_cast<icu4x::capi::LineBreakStrictness>(value); +} + +inline icu4x::LineBreakStrictness icu4x::LineBreakStrictness::FromFFI(icu4x::capi::LineBreakStrictness c_enum) { + switch (c_enum) { + case icu4x::capi::LineBreakStrictness_Loose: + case icu4x::capi::LineBreakStrictness_Normal: + case icu4x::capi::LineBreakStrictness_Strict: + case icu4x::capi::LineBreakStrictness_Anywhere: + return static_cast<icu4x::LineBreakStrictness::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LineBreakStrictness_HPP diff --git a/ffi/capi/bindings/cpp/LineBreakWordOption.d.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakWordOption.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/LineBreakWordOption.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LineBreakWordOption.d.hpp index 3c666538f8b..6c8ed1cae44 100644 --- a/ffi/capi/bindings/cpp/LineBreakWordOption.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakWordOption.d.hpp @@ -1,5 +1,5 @@ -#ifndef LineBreakWordOption_D_HPP -#define LineBreakWordOption_D_HPP +#ifndef icu4x_LineBreakWordOption_D_HPP +#define icu4x_LineBreakWordOption_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LineBreakWordOption { LineBreakWordOption_Normal = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LineBreakWordOption { public: enum Value { @@ -35,11 +36,11 @@ class LineBreakWordOption { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LineBreakWordOption AsFFI() const; - inline static LineBreakWordOption FromFFI(diplomat::capi::LineBreakWordOption c_enum); + inline icu4x::capi::LineBreakWordOption AsFFI() const; + inline static icu4x::LineBreakWordOption FromFFI(icu4x::capi::LineBreakWordOption c_enum); private: Value value; }; - -#endif // LineBreakWordOption_D_HPP +} // namespace +#endif // icu4x_LineBreakWordOption_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineBreakWordOption.hpp b/ffi/capi/bindings/cpp/icu4x/LineBreakWordOption.hpp new file mode 100644 index 00000000000..f217a3ed3aa --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineBreakWordOption.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_LineBreakWordOption_HPP +#define icu4x_LineBreakWordOption_HPP + +#include "LineBreakWordOption.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LineBreakWordOption icu4x::LineBreakWordOption::AsFFI() const { + return static_cast<icu4x::capi::LineBreakWordOption>(value); +} + +inline icu4x::LineBreakWordOption icu4x::LineBreakWordOption::FromFFI(icu4x::capi::LineBreakWordOption c_enum) { + switch (c_enum) { + case icu4x::capi::LineBreakWordOption_Normal: + case icu4x::capi::LineBreakWordOption_BreakAll: + case icu4x::capi::LineBreakWordOption_KeepAll: + return static_cast<icu4x::LineBreakWordOption::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LineBreakWordOption_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineSegmenter.d.hpp b/ffi/capi/bindings/cpp/icu4x/LineSegmenter.d.hpp new file mode 100644 index 00000000000..f4d8abe9b4c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineSegmenter.d.hpp @@ -0,0 +1,71 @@ +#ifndef icu4x_LineSegmenter_D_HPP +#define icu4x_LineSegmenter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct LineBreakIteratorLatin1; } +class LineBreakIteratorLatin1; +namespace capi { struct LineBreakIteratorUtf16; } +class LineBreakIteratorUtf16; +namespace capi { struct LineBreakIteratorUtf8; } +class LineBreakIteratorUtf8; +namespace capi { struct LineSegmenter; } +class LineSegmenter; +struct LineBreakOptionsV1; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct LineSegmenter; +} // namespace capi +} // namespace + +namespace icu4x { +class LineSegmenter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_auto(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_lstm(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_dictionary(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_auto_with_options_v1(const icu4x::DataProvider& provider, icu4x::LineBreakOptionsV1 options); + + inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_lstm_with_options_v1(const icu4x::DataProvider& provider, icu4x::LineBreakOptionsV1 options); + + inline static diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> create_dictionary_with_options_v1(const icu4x::DataProvider& provider, icu4x::LineBreakOptionsV1 options); + + inline std::unique_ptr<icu4x::LineBreakIteratorUtf8> segment(std::string_view input) const; + + inline std::unique_ptr<icu4x::LineBreakIteratorUtf16> segment16(std::u16string_view input) const; + + inline std::unique_ptr<icu4x::LineBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; + + inline const icu4x::capi::LineSegmenter* AsFFI() const; + inline icu4x::capi::LineSegmenter* AsFFI(); + inline static const icu4x::LineSegmenter* FromFFI(const icu4x::capi::LineSegmenter* ptr); + inline static icu4x::LineSegmenter* FromFFI(icu4x::capi::LineSegmenter* ptr); + inline static void operator delete(void* ptr); +private: + LineSegmenter() = delete; + LineSegmenter(const icu4x::LineSegmenter&) = delete; + LineSegmenter(icu4x::LineSegmenter&&) noexcept = delete; + LineSegmenter operator=(const icu4x::LineSegmenter&) = delete; + LineSegmenter operator=(icu4x::LineSegmenter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LineSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LineSegmenter.hpp b/ffi/capi/bindings/cpp/icu4x/LineSegmenter.hpp new file mode 100644 index 00000000000..88debb59431 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LineSegmenter.hpp @@ -0,0 +1,131 @@ +#ifndef icu4x_LineSegmenter_HPP +#define icu4x_LineSegmenter_HPP + +#include "LineSegmenter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "LineBreakIteratorLatin1.hpp" +#include "LineBreakIteratorUtf16.hpp" +#include "LineBreakIteratorUtf8.hpp" +#include "LineBreakOptionsV1.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_LineSegmenter_create_auto_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_auto_mv1_result; + icu4x_LineSegmenter_create_auto_mv1_result icu4x_LineSegmenter_create_auto_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_LineSegmenter_create_lstm_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_lstm_mv1_result; + icu4x_LineSegmenter_create_lstm_mv1_result icu4x_LineSegmenter_create_lstm_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_LineSegmenter_create_dictionary_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_dictionary_mv1_result; + icu4x_LineSegmenter_create_dictionary_mv1_result icu4x_LineSegmenter_create_dictionary_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_LineSegmenter_create_auto_with_options_v1_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_auto_with_options_v1_mv1_result; + icu4x_LineSegmenter_create_auto_with_options_v1_mv1_result icu4x_LineSegmenter_create_auto_with_options_v1_mv1(const icu4x::capi::DataProvider* provider, icu4x::capi::LineBreakOptionsV1 options); + + typedef struct icu4x_LineSegmenter_create_lstm_with_options_v1_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_lstm_with_options_v1_mv1_result; + icu4x_LineSegmenter_create_lstm_with_options_v1_mv1_result icu4x_LineSegmenter_create_lstm_with_options_v1_mv1(const icu4x::capi::DataProvider* provider, icu4x::capi::LineBreakOptionsV1 options); + + typedef struct icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1_result {union {icu4x::capi::LineSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1_result; + icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1_result icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1(const icu4x::capi::DataProvider* provider, icu4x::capi::LineBreakOptionsV1 options); + + icu4x::capi::LineBreakIteratorUtf8* icu4x_LineSegmenter_segment_utf8_mv1(const icu4x::capi::LineSegmenter* self, const char* input_data, size_t input_len); + + icu4x::capi::LineBreakIteratorUtf16* icu4x_LineSegmenter_segment_utf16_mv1(const icu4x::capi::LineSegmenter* self, const char16_t* input_data, size_t input_len); + + icu4x::capi::LineBreakIteratorLatin1* icu4x_LineSegmenter_segment_latin1_mv1(const icu4x::capi::LineSegmenter* self, const uint8_t* input_data, size_t input_len); + + + void icu4x_LineSegmenter_destroy_mv1(LineSegmenter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_auto(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LineSegmenter_create_auto_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_lstm(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LineSegmenter_create_lstm_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_dictionary(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LineSegmenter_create_dictionary_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_auto_with_options_v1(const icu4x::DataProvider& provider, icu4x::LineBreakOptionsV1 options) { + auto result = icu4x::capi::icu4x_LineSegmenter_create_auto_with_options_v1_mv1(provider.AsFFI(), + options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_lstm_with_options_v1(const icu4x::DataProvider& provider, icu4x::LineBreakOptionsV1 options) { + auto result = icu4x::capi::icu4x_LineSegmenter_create_lstm_with_options_v1_mv1(provider.AsFFI(), + options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError> icu4x::LineSegmenter::create_dictionary_with_options_v1(const icu4x::DataProvider& provider, icu4x::LineBreakOptionsV1 options) { + auto result = icu4x::capi::icu4x_LineSegmenter_create_dictionary_with_options_v1_mv1(provider.AsFFI(), + options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LineSegmenter>>(std::unique_ptr<icu4x::LineSegmenter>(icu4x::LineSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LineSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::LineBreakIteratorUtf8> icu4x::LineSegmenter::segment(std::string_view input) const { + auto result = icu4x::capi::icu4x_LineSegmenter_segment_utf8_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::LineBreakIteratorUtf8>(icu4x::LineBreakIteratorUtf8::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::LineBreakIteratorUtf16> icu4x::LineSegmenter::segment16(std::u16string_view input) const { + auto result = icu4x::capi::icu4x_LineSegmenter_segment_utf16_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::LineBreakIteratorUtf16>(icu4x::LineBreakIteratorUtf16::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::LineBreakIteratorLatin1> icu4x::LineSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { + auto result = icu4x::capi::icu4x_LineSegmenter_segment_latin1_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::LineBreakIteratorLatin1>(icu4x::LineBreakIteratorLatin1::FromFFI(result)); +} + +inline const icu4x::capi::LineSegmenter* icu4x::LineSegmenter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LineSegmenter*>(this); +} + +inline icu4x::capi::LineSegmenter* icu4x::LineSegmenter::AsFFI() { + return reinterpret_cast<icu4x::capi::LineSegmenter*>(this); +} + +inline const icu4x::LineSegmenter* icu4x::LineSegmenter::FromFFI(const icu4x::capi::LineSegmenter* ptr) { + return reinterpret_cast<const icu4x::LineSegmenter*>(ptr); +} + +inline icu4x::LineSegmenter* icu4x::LineSegmenter::FromFFI(icu4x::capi::LineSegmenter* ptr) { + return reinterpret_cast<icu4x::LineSegmenter*>(ptr); +} + +inline void icu4x::LineSegmenter::operator delete(void* ptr) { + icu4x::capi::icu4x_LineSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::LineSegmenter*>(ptr)); +} + + +#endif // icu4x_LineSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ListFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/ListFormatter.d.hpp new file mode 100644 index 00000000000..117a9217f89 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ListFormatter.d.hpp @@ -0,0 +1,59 @@ +#ifndef icu4x_ListFormatter_D_HPP +#define icu4x_ListFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct ListFormatter; } +class ListFormatter; +namespace capi { struct Locale; } +class Locale; +class DataError; +class ListLength; +} + + +namespace icu4x { +namespace capi { + struct ListFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class ListFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_and_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length); + + inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_or_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length); + + inline static diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> create_unit_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length); + + inline std::string format(diplomat::span<const std::string_view> list) const; + + inline std::string format16(diplomat::span<const std::u16string_view> list) const; + + inline const icu4x::capi::ListFormatter* AsFFI() const; + inline icu4x::capi::ListFormatter* AsFFI(); + inline static const icu4x::ListFormatter* FromFFI(const icu4x::capi::ListFormatter* ptr); + inline static icu4x::ListFormatter* FromFFI(icu4x::capi::ListFormatter* ptr); + inline static void operator delete(void* ptr); +private: + ListFormatter() = delete; + ListFormatter(const icu4x::ListFormatter&) = delete; + ListFormatter(icu4x::ListFormatter&&) noexcept = delete; + ListFormatter operator=(const icu4x::ListFormatter&) = delete; + ListFormatter operator=(icu4x::ListFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_ListFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ListFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/ListFormatter.hpp new file mode 100644 index 00000000000..36b61a5f7ce --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ListFormatter.hpp @@ -0,0 +1,105 @@ +#ifndef icu4x_ListFormatter_HPP +#define icu4x_ListFormatter_HPP + +#include "ListFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "ListLength.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_ListFormatter_create_and_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_mv1_result; + icu4x_ListFormatter_create_and_with_length_mv1_result icu4x_ListFormatter_create_and_with_length_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length); + + typedef struct icu4x_ListFormatter_create_or_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_mv1_result; + icu4x_ListFormatter_create_or_with_length_mv1_result icu4x_ListFormatter_create_or_with_length_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length); + + typedef struct icu4x_ListFormatter_create_unit_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_mv1_result; + icu4x_ListFormatter_create_unit_with_length_mv1_result icu4x_ListFormatter_create_unit_with_length_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length); + + void icu4x_ListFormatter_format_utf8_mv1(const icu4x::capi::ListFormatter* self, diplomat::capi::DiplomatStringsView* list_data, size_t list_len, diplomat::capi::DiplomatWrite* write); + + void icu4x_ListFormatter_format_utf16_mv1(const icu4x::capi::ListFormatter* self, diplomat::capi::DiplomatStrings16View* list_data, size_t list_len, diplomat::capi::DiplomatWrite* write); + + + void icu4x_ListFormatter_destroy_mv1(ListFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_and_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length) { + auto result = icu4x::capi::icu4x_ListFormatter_create_and_with_length_mv1(provider.AsFFI(), + locale.AsFFI(), + length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_or_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length) { + auto result = icu4x::capi::icu4x_ListFormatter_create_or_with_length_mv1(provider.AsFFI(), + locale.AsFFI(), + length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError> icu4x::ListFormatter::create_unit_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::ListLength length) { + auto result = icu4x::capi::icu4x_ListFormatter_create_unit_with_length_mv1(provider.AsFFI(), + locale.AsFFI(), + length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::string icu4x::ListFormatter::format(diplomat::span<const std::string_view> list) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_ListFormatter_format_utf8_mv1(this->AsFFI(), + list.data(), + list.size(), + &write); + return output; +} + +inline std::string icu4x::ListFormatter::format16(diplomat::span<const std::u16string_view> list) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_ListFormatter_format_utf16_mv1(this->AsFFI(), + list.data(), + list.size(), + &write); + return output; +} + +inline const icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::ListFormatter*>(this); +} + +inline icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::ListFormatter*>(this); +} + +inline const icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(const icu4x::capi::ListFormatter* ptr) { + return reinterpret_cast<const icu4x::ListFormatter*>(ptr); +} + +inline icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(icu4x::capi::ListFormatter* ptr) { + return reinterpret_cast<icu4x::ListFormatter*>(ptr); +} + +inline void icu4x::ListFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_ListFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::ListFormatter*>(ptr)); +} + + +#endif // icu4x_ListFormatter_HPP diff --git a/ffi/capi/bindings/cpp/ListLength.d.hpp b/ffi/capi/bindings/cpp/icu4x/ListLength.d.hpp similarity index 68% rename from ffi/capi/bindings/cpp/ListLength.d.hpp rename to ffi/capi/bindings/cpp/icu4x/ListLength.d.hpp index 214dbd1422f..489cd7d4150 100644 --- a/ffi/capi/bindings/cpp/ListLength.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/ListLength.d.hpp @@ -1,5 +1,5 @@ -#ifndef ListLength_D_HPP -#define ListLength_D_HPP +#ifndef icu4x_ListLength_D_HPP +#define icu4x_ListLength_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum ListLength { ListLength_Wide = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class ListLength { public: enum Value { @@ -35,11 +36,11 @@ class ListLength { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::ListLength AsFFI() const; - inline static ListLength FromFFI(diplomat::capi::ListLength c_enum); + inline icu4x::capi::ListLength AsFFI() const; + inline static icu4x::ListLength FromFFI(icu4x::capi::ListLength c_enum); private: Value value; }; - -#endif // ListLength_D_HPP +} // namespace +#endif // icu4x_ListLength_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ListLength.hpp b/ffi/capi/bindings/cpp/icu4x/ListLength.hpp new file mode 100644 index 00000000000..25ba9427037 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ListLength.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_ListLength_HPP +#define icu4x_ListLength_HPP + +#include "ListLength.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::ListLength icu4x::ListLength::AsFFI() const { + return static_cast<icu4x::capi::ListLength>(value); +} + +inline icu4x::ListLength icu4x::ListLength::FromFFI(icu4x::capi::ListLength c_enum) { + switch (c_enum) { + case icu4x::capi::ListLength_Wide: + case icu4x::capi::ListLength_Short: + case icu4x::capi::ListLength_Narrow: + return static_cast<icu4x::ListLength::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_ListLength_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Locale.d.hpp b/ffi/capi/bindings/cpp/icu4x/Locale.d.hpp new file mode 100644 index 00000000000..f2b67ac0c09 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Locale.d.hpp @@ -0,0 +1,76 @@ +#ifndef icu4x_Locale_D_HPP +#define icu4x_Locale_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Locale; } +class Locale; +class LocaleParseError; +} + + +namespace icu4x { +namespace capi { + struct Locale; +} // namespace capi +} // namespace + +namespace icu4x { +class Locale { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError> from_string(std::string_view name); + + inline static std::unique_ptr<icu4x::Locale> und(); + + inline std::unique_ptr<icu4x::Locale> clone() const; + + inline std::string basename() const; + + inline std::optional<std::string> get_unicode_extension(std::string_view s) const; + + inline std::string language() const; + + inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_language(std::string_view s); + + inline std::optional<std::string> region() const; + + inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_region(std::string_view s); + + inline std::optional<std::string> script() const; + + inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_script(std::string_view s); + + inline static diplomat::result<std::string, icu4x::LocaleParseError> canonicalize(std::string_view s); + + inline std::string to_string() const; + + inline bool normalizing_eq(std::string_view other) const; + + inline int8_t compare_to_string(std::string_view other) const; + + inline int8_t compare_to(const icu4x::Locale& other) const; + + inline const icu4x::capi::Locale* AsFFI() const; + inline icu4x::capi::Locale* AsFFI(); + inline static const icu4x::Locale* FromFFI(const icu4x::capi::Locale* ptr); + inline static icu4x::Locale* FromFFI(icu4x::capi::Locale* ptr); + inline static void operator delete(void* ptr); +private: + Locale() = delete; + Locale(const icu4x::Locale&) = delete; + Locale(icu4x::Locale&&) noexcept = delete; + Locale operator=(const icu4x::Locale&) = delete; + Locale operator=(icu4x::Locale&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_Locale_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Locale.hpp b/ffi/capi/bindings/cpp/icu4x/Locale.hpp new file mode 100644 index 00000000000..7638410bf20 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Locale.hpp @@ -0,0 +1,204 @@ +#ifndef icu4x_Locale_HPP +#define icu4x_Locale_HPP + +#include "Locale.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "LocaleParseError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_Locale_from_string_mv1_result {union {icu4x::capi::Locale* ok; icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_from_string_mv1_result; + icu4x_Locale_from_string_mv1_result icu4x_Locale_from_string_mv1(const char* name_data, size_t name_len); + + icu4x::capi::Locale* icu4x_Locale_und_mv1(void); + + icu4x::capi::Locale* icu4x_Locale_clone_mv1(const icu4x::capi::Locale* self); + + void icu4x_Locale_basename_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_Locale_get_unicode_extension_mv1_result { bool is_ok;} icu4x_Locale_get_unicode_extension_mv1_result; + icu4x_Locale_get_unicode_extension_mv1_result icu4x_Locale_get_unicode_extension_mv1(const icu4x::capi::Locale* self, const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); + + void icu4x_Locale_language_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_Locale_set_language_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_language_mv1_result; + icu4x_Locale_set_language_mv1_result icu4x_Locale_set_language_mv1(icu4x::capi::Locale* self, const char* s_data, size_t s_len); + + typedef struct icu4x_Locale_region_mv1_result { bool is_ok;} icu4x_Locale_region_mv1_result; + icu4x_Locale_region_mv1_result icu4x_Locale_region_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_Locale_set_region_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_region_mv1_result; + icu4x_Locale_set_region_mv1_result icu4x_Locale_set_region_mv1(icu4x::capi::Locale* self, const char* s_data, size_t s_len); + + typedef struct icu4x_Locale_script_mv1_result { bool is_ok;} icu4x_Locale_script_mv1_result; + icu4x_Locale_script_mv1_result icu4x_Locale_script_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_Locale_set_script_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_set_script_mv1_result; + icu4x_Locale_set_script_mv1_result icu4x_Locale_set_script_mv1(icu4x::capi::Locale* self, const char* s_data, size_t s_len); + + typedef struct icu4x_Locale_canonicalize_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_Locale_canonicalize_mv1_result; + icu4x_Locale_canonicalize_mv1_result icu4x_Locale_canonicalize_mv1(const char* s_data, size_t s_len, diplomat::capi::DiplomatWrite* write); + + void icu4x_Locale_to_string_mv1(const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write); + + bool icu4x_Locale_normalizing_eq_mv1(const icu4x::capi::Locale* self, const char* other_data, size_t other_len); + + int8_t icu4x_Locale_compare_to_string_mv1(const icu4x::capi::Locale* self, const char* other_data, size_t other_len); + + int8_t icu4x_Locale_compare_to_mv1(const icu4x::capi::Locale* self, const icu4x::capi::Locale* other); + + + void icu4x_Locale_destroy_mv1(Locale* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError> icu4x::Locale::from_string(std::string_view name) { + auto result = icu4x::capi::icu4x_Locale_from_string_mv1(name.data(), + name.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError>(diplomat::Ok<std::unique_ptr<icu4x::Locale>>(std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::Locale> icu4x::Locale::und() { + auto result = icu4x::capi::icu4x_Locale_und_mv1(); + return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::Locale> icu4x::Locale::clone() const { + auto result = icu4x::capi::icu4x_Locale_clone_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result)); +} + +inline std::string icu4x::Locale::basename() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_Locale_basename_mv1(this->AsFFI(), + &write); + return output; +} + +inline std::optional<std::string> icu4x::Locale::get_unicode_extension(std::string_view s) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_Locale_get_unicode_extension_mv1(this->AsFFI(), + s.data(), + s.size(), + &write); + return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; +} + +inline std::string icu4x::Locale::language() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_Locale_language_mv1(this->AsFFI(), + &write); + return output; +} + +inline diplomat::result<std::monostate, icu4x::LocaleParseError> icu4x::Locale::set_language(std::string_view s) { + auto result = icu4x::capi::icu4x_Locale_set_language_mv1(this->AsFFI(), + s.data(), + s.size()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err))); +} + +inline std::optional<std::string> icu4x::Locale::region() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_Locale_region_mv1(this->AsFFI(), + &write); + return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; +} + +inline diplomat::result<std::monostate, icu4x::LocaleParseError> icu4x::Locale::set_region(std::string_view s) { + auto result = icu4x::capi::icu4x_Locale_set_region_mv1(this->AsFFI(), + s.data(), + s.size()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err))); +} + +inline std::optional<std::string> icu4x::Locale::script() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_Locale_script_mv1(this->AsFFI(), + &write); + return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; +} + +inline diplomat::result<std::monostate, icu4x::LocaleParseError> icu4x::Locale::set_script(std::string_view s) { + auto result = icu4x::capi::icu4x_Locale_set_script_mv1(this->AsFFI(), + s.data(), + s.size()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::LocaleParseError> icu4x::Locale::canonicalize(std::string_view s) { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_Locale_canonicalize_mv1(s.data(), + s.size(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err))); +} + +inline std::string icu4x::Locale::to_string() const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_Locale_to_string_mv1(this->AsFFI(), + &write); + return output; +} + +inline bool icu4x::Locale::normalizing_eq(std::string_view other) const { + auto result = icu4x::capi::icu4x_Locale_normalizing_eq_mv1(this->AsFFI(), + other.data(), + other.size()); + return result; +} + +inline int8_t icu4x::Locale::compare_to_string(std::string_view other) const { + auto result = icu4x::capi::icu4x_Locale_compare_to_string_mv1(this->AsFFI(), + other.data(), + other.size()); + return result; +} + +inline int8_t icu4x::Locale::compare_to(const icu4x::Locale& other) const { + auto result = icu4x::capi::icu4x_Locale_compare_to_mv1(this->AsFFI(), + other.AsFFI()); + return result; +} + +inline const icu4x::capi::Locale* icu4x::Locale::AsFFI() const { + return reinterpret_cast<const icu4x::capi::Locale*>(this); +} + +inline icu4x::capi::Locale* icu4x::Locale::AsFFI() { + return reinterpret_cast<icu4x::capi::Locale*>(this); +} + +inline const icu4x::Locale* icu4x::Locale::FromFFI(const icu4x::capi::Locale* ptr) { + return reinterpret_cast<const icu4x::Locale*>(ptr); +} + +inline icu4x::Locale* icu4x::Locale::FromFFI(icu4x::capi::Locale* ptr) { + return reinterpret_cast<icu4x::Locale*>(ptr); +} + +inline void icu4x::Locale::operator delete(void* ptr) { + icu4x::capi::icu4x_Locale_destroy_mv1(reinterpret_cast<icu4x::capi::Locale*>(ptr)); +} + + +#endif // icu4x_Locale_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.d.hpp new file mode 100644 index 00000000000..771f016af1a --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.d.hpp @@ -0,0 +1,55 @@ +#ifndef icu4x_LocaleCanonicalizer_D_HPP +#define icu4x_LocaleCanonicalizer_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct LocaleCanonicalizer; } +class LocaleCanonicalizer; +class Error; +class TransformResult; +} + + +namespace icu4x { +namespace capi { + struct LocaleCanonicalizer; +} // namespace capi +} // namespace + +namespace icu4x { +class LocaleCanonicalizer { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error> create(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error> create_extended(const icu4x::DataProvider& provider); + + inline icu4x::TransformResult canonicalize(icu4x::Locale& locale) const; + + inline const icu4x::capi::LocaleCanonicalizer* AsFFI() const; + inline icu4x::capi::LocaleCanonicalizer* AsFFI(); + inline static const icu4x::LocaleCanonicalizer* FromFFI(const icu4x::capi::LocaleCanonicalizer* ptr); + inline static icu4x::LocaleCanonicalizer* FromFFI(icu4x::capi::LocaleCanonicalizer* ptr); + inline static void operator delete(void* ptr); +private: + LocaleCanonicalizer() = delete; + LocaleCanonicalizer(const icu4x::LocaleCanonicalizer&) = delete; + LocaleCanonicalizer(icu4x::LocaleCanonicalizer&&) noexcept = delete; + LocaleCanonicalizer operator=(const icu4x::LocaleCanonicalizer&) = delete; + LocaleCanonicalizer operator=(icu4x::LocaleCanonicalizer&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LocaleCanonicalizer_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.hpp new file mode 100644 index 00000000000..b1d73b59d05 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleCanonicalizer.hpp @@ -0,0 +1,75 @@ +#ifndef icu4x_LocaleCanonicalizer_HPP +#define icu4x_LocaleCanonicalizer_HPP + +#include "LocaleCanonicalizer.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataProvider.hpp" +#include "Error.hpp" +#include "Locale.hpp" +#include "TransformResult.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_LocaleCanonicalizer_create_mv1_result {union {icu4x::capi::LocaleCanonicalizer* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_mv1_result; + icu4x_LocaleCanonicalizer_create_mv1_result icu4x_LocaleCanonicalizer_create_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_LocaleCanonicalizer_create_extended_mv1_result {union {icu4x::capi::LocaleCanonicalizer* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_LocaleCanonicalizer_create_extended_mv1_result; + icu4x_LocaleCanonicalizer_create_extended_mv1_result icu4x_LocaleCanonicalizer_create_extended_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::TransformResult icu4x_LocaleCanonicalizer_canonicalize_mv1(const icu4x::capi::LocaleCanonicalizer* self, icu4x::capi::Locale* locale); + + + void icu4x_LocaleCanonicalizer_destroy_mv1(LocaleCanonicalizer* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error> icu4x::LocaleCanonicalizer::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LocaleCanonicalizer_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::LocaleCanonicalizer>>(std::unique_ptr<icu4x::LocaleCanonicalizer>(icu4x::LocaleCanonicalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error> icu4x::LocaleCanonicalizer::create_extended(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LocaleCanonicalizer_create_extended_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::LocaleCanonicalizer>>(std::unique_ptr<icu4x::LocaleCanonicalizer>(icu4x::LocaleCanonicalizer::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleCanonicalizer>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline icu4x::TransformResult icu4x::LocaleCanonicalizer::canonicalize(icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleCanonicalizer_canonicalize_mv1(this->AsFFI(), + locale.AsFFI()); + return icu4x::TransformResult::FromFFI(result); +} + +inline const icu4x::capi::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LocaleCanonicalizer*>(this); +} + +inline icu4x::capi::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::AsFFI() { + return reinterpret_cast<icu4x::capi::LocaleCanonicalizer*>(this); +} + +inline const icu4x::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::FromFFI(const icu4x::capi::LocaleCanonicalizer* ptr) { + return reinterpret_cast<const icu4x::LocaleCanonicalizer*>(ptr); +} + +inline icu4x::LocaleCanonicalizer* icu4x::LocaleCanonicalizer::FromFFI(icu4x::capi::LocaleCanonicalizer* ptr) { + return reinterpret_cast<icu4x::LocaleCanonicalizer*>(ptr); +} + +inline void icu4x::LocaleCanonicalizer::operator delete(void* ptr) { + icu4x::capi::icu4x_LocaleCanonicalizer_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleCanonicalizer*>(ptr)); +} + + +#endif // icu4x_LocaleCanonicalizer_HPP diff --git a/ffi/capi/bindings/cpp/LocaleDirection.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleDirection.d.hpp similarity index 68% rename from ffi/capi/bindings/cpp/LocaleDirection.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LocaleDirection.d.hpp index a1f85400c81..807effa8760 100644 --- a/ffi/capi/bindings/cpp/LocaleDirection.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LocaleDirection.d.hpp @@ -1,5 +1,5 @@ -#ifndef LocaleDirection_D_HPP -#define LocaleDirection_D_HPP +#ifndef icu4x_LocaleDirection_D_HPP +#define icu4x_LocaleDirection_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LocaleDirection { LocaleDirection_LeftToRight = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LocaleDirection { public: enum Value { @@ -35,11 +36,11 @@ class LocaleDirection { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LocaleDirection AsFFI() const; - inline static LocaleDirection FromFFI(diplomat::capi::LocaleDirection c_enum); + inline icu4x::capi::LocaleDirection AsFFI() const; + inline static icu4x::LocaleDirection FromFFI(icu4x::capi::LocaleDirection c_enum); private: Value value; }; - -#endif // LocaleDirection_D_HPP +} // namespace +#endif // icu4x_LocaleDirection_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleDirection.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleDirection.hpp new file mode 100644 index 00000000000..73ed1c480a4 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleDirection.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_LocaleDirection_HPP +#define icu4x_LocaleDirection_HPP + +#include "LocaleDirection.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LocaleDirection icu4x::LocaleDirection::AsFFI() const { + return static_cast<icu4x::capi::LocaleDirection>(value); +} + +inline icu4x::LocaleDirection icu4x::LocaleDirection::FromFFI(icu4x::capi::LocaleDirection c_enum) { + switch (c_enum) { + case icu4x::capi::LocaleDirection_LeftToRight: + case icu4x::capi::LocaleDirection_RightToLeft: + case icu4x::capi::LocaleDirection_Unknown: + return static_cast<icu4x::LocaleDirection::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LocaleDirection_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.d.hpp new file mode 100644 index 00000000000..53293a01931 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.d.hpp @@ -0,0 +1,61 @@ +#ifndef icu4x_LocaleDirectionality_D_HPP +#define icu4x_LocaleDirectionality_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct LocaleDirectionality; } +class LocaleDirectionality; +namespace capi { struct LocaleExpander; } +class LocaleExpander; +class DataError; +class LocaleDirection; +} + + +namespace icu4x { +namespace capi { + struct LocaleDirectionality; +} // namespace capi +} // namespace + +namespace icu4x { +class LocaleDirectionality { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> create_with_expander(const icu4x::DataProvider& provider, const icu4x::LocaleExpander& expander); + + inline icu4x::LocaleDirection get(const icu4x::Locale& locale) const; + + inline bool is_left_to_right(const icu4x::Locale& locale) const; + + inline bool is_right_to_left(const icu4x::Locale& locale) const; + + inline const icu4x::capi::LocaleDirectionality* AsFFI() const; + inline icu4x::capi::LocaleDirectionality* AsFFI(); + inline static const icu4x::LocaleDirectionality* FromFFI(const icu4x::capi::LocaleDirectionality* ptr); + inline static icu4x::LocaleDirectionality* FromFFI(icu4x::capi::LocaleDirectionality* ptr); + inline static void operator delete(void* ptr); +private: + LocaleDirectionality() = delete; + LocaleDirectionality(const icu4x::LocaleDirectionality&) = delete; + LocaleDirectionality(icu4x::LocaleDirectionality&&) noexcept = delete; + LocaleDirectionality operator=(const icu4x::LocaleDirectionality&) = delete; + LocaleDirectionality operator=(icu4x::LocaleDirectionality&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LocaleDirectionality_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.hpp new file mode 100644 index 00000000000..49849a2f879 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleDirectionality.hpp @@ -0,0 +1,93 @@ +#ifndef icu4x_LocaleDirectionality_HPP +#define icu4x_LocaleDirectionality_HPP + +#include "LocaleDirectionality.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" +#include "LocaleDirection.hpp" +#include "LocaleExpander.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_LocaleDirectionality_create_mv1_result {union {icu4x::capi::LocaleDirectionality* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_mv1_result; + icu4x_LocaleDirectionality_create_mv1_result icu4x_LocaleDirectionality_create_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_LocaleDirectionality_create_with_expander_mv1_result {union {icu4x::capi::LocaleDirectionality* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleDirectionality_create_with_expander_mv1_result; + icu4x_LocaleDirectionality_create_with_expander_mv1_result icu4x_LocaleDirectionality_create_with_expander_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::LocaleExpander* expander); + + icu4x::capi::LocaleDirection icu4x_LocaleDirectionality_get_mv1(const icu4x::capi::LocaleDirectionality* self, const icu4x::capi::Locale* locale); + + bool icu4x_LocaleDirectionality_is_left_to_right_mv1(const icu4x::capi::LocaleDirectionality* self, const icu4x::capi::Locale* locale); + + bool icu4x_LocaleDirectionality_is_right_to_left_mv1(const icu4x::capi::LocaleDirectionality* self, const icu4x::capi::Locale* locale); + + + void icu4x_LocaleDirectionality_destroy_mv1(LocaleDirectionality* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> icu4x::LocaleDirectionality::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LocaleDirectionality_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleDirectionality>>(std::unique_ptr<icu4x::LocaleDirectionality>(icu4x::LocaleDirectionality::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError> icu4x::LocaleDirectionality::create_with_expander(const icu4x::DataProvider& provider, const icu4x::LocaleExpander& expander) { + auto result = icu4x::capi::icu4x_LocaleDirectionality_create_with_expander_mv1(provider.AsFFI(), + expander.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleDirectionality>>(std::unique_ptr<icu4x::LocaleDirectionality>(icu4x::LocaleDirectionality::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleDirectionality>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline icu4x::LocaleDirection icu4x::LocaleDirectionality::get(const icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleDirectionality_get_mv1(this->AsFFI(), + locale.AsFFI()); + return icu4x::LocaleDirection::FromFFI(result); +} + +inline bool icu4x::LocaleDirectionality::is_left_to_right(const icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleDirectionality_is_left_to_right_mv1(this->AsFFI(), + locale.AsFFI()); + return result; +} + +inline bool icu4x::LocaleDirectionality::is_right_to_left(const icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleDirectionality_is_right_to_left_mv1(this->AsFFI(), + locale.AsFFI()); + return result; +} + +inline const icu4x::capi::LocaleDirectionality* icu4x::LocaleDirectionality::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LocaleDirectionality*>(this); +} + +inline icu4x::capi::LocaleDirectionality* icu4x::LocaleDirectionality::AsFFI() { + return reinterpret_cast<icu4x::capi::LocaleDirectionality*>(this); +} + +inline const icu4x::LocaleDirectionality* icu4x::LocaleDirectionality::FromFFI(const icu4x::capi::LocaleDirectionality* ptr) { + return reinterpret_cast<const icu4x::LocaleDirectionality*>(ptr); +} + +inline icu4x::LocaleDirectionality* icu4x::LocaleDirectionality::FromFFI(icu4x::capi::LocaleDirectionality* ptr) { + return reinterpret_cast<icu4x::LocaleDirectionality*>(ptr); +} + +inline void icu4x::LocaleDirectionality::operator delete(void* ptr) { + icu4x::capi::icu4x_LocaleDirectionality_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleDirectionality*>(ptr)); +} + + +#endif // icu4x_LocaleDirectionality_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.d.hpp new file mode 100644 index 00000000000..fe8175a81f2 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.d.hpp @@ -0,0 +1,53 @@ +#ifndef icu4x_LocaleDisplayNamesFormatter_D_HPP +#define icu4x_LocaleDisplayNamesFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct LocaleDisplayNamesFormatter; } +class LocaleDisplayNamesFormatter; +struct DisplayNamesOptionsV1; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct LocaleDisplayNamesFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class LocaleDisplayNamesFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError> create_v1(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options); + + inline std::string of(const icu4x::Locale& locale) const; + + inline const icu4x::capi::LocaleDisplayNamesFormatter* AsFFI() const; + inline icu4x::capi::LocaleDisplayNamesFormatter* AsFFI(); + inline static const icu4x::LocaleDisplayNamesFormatter* FromFFI(const icu4x::capi::LocaleDisplayNamesFormatter* ptr); + inline static icu4x::LocaleDisplayNamesFormatter* FromFFI(icu4x::capi::LocaleDisplayNamesFormatter* ptr); + inline static void operator delete(void* ptr); +private: + LocaleDisplayNamesFormatter() = delete; + LocaleDisplayNamesFormatter(const icu4x::LocaleDisplayNamesFormatter&) = delete; + LocaleDisplayNamesFormatter(icu4x::LocaleDisplayNamesFormatter&&) noexcept = delete; + LocaleDisplayNamesFormatter operator=(const icu4x::LocaleDisplayNamesFormatter&) = delete; + LocaleDisplayNamesFormatter operator=(icu4x::LocaleDisplayNamesFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LocaleDisplayNamesFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.hpp new file mode 100644 index 00000000000..ef5ae99c225 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleDisplayNamesFormatter.hpp @@ -0,0 +1,72 @@ +#ifndef icu4x_LocaleDisplayNamesFormatter_HPP +#define icu4x_LocaleDisplayNamesFormatter_HPP + +#include "LocaleDisplayNamesFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "DisplayNamesOptionsV1.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result {union {icu4x::capi::LocaleDisplayNamesFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result; + icu4x_LocaleDisplayNamesFormatter_create_v1_mv1_result icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DisplayNamesOptionsV1 options); + + void icu4x_LocaleDisplayNamesFormatter_of_mv1(const icu4x::capi::LocaleDisplayNamesFormatter* self, const icu4x::capi::Locale* locale, diplomat::capi::DiplomatWrite* write); + + + void icu4x_LocaleDisplayNamesFormatter_destroy_mv1(LocaleDisplayNamesFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError> icu4x::LocaleDisplayNamesFormatter::create_v1(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DisplayNamesOptionsV1 options) { + auto result = icu4x::capi::icu4x_LocaleDisplayNamesFormatter_create_v1_mv1(provider.AsFFI(), + locale.AsFFI(), + options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>>(std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>(icu4x::LocaleDisplayNamesFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleDisplayNamesFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::string icu4x::LocaleDisplayNamesFormatter::of(const icu4x::Locale& locale) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_LocaleDisplayNamesFormatter_of_mv1(this->AsFFI(), + locale.AsFFI(), + &write); + return output; +} + +inline const icu4x::capi::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LocaleDisplayNamesFormatter*>(this); +} + +inline icu4x::capi::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::LocaleDisplayNamesFormatter*>(this); +} + +inline const icu4x::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::FromFFI(const icu4x::capi::LocaleDisplayNamesFormatter* ptr) { + return reinterpret_cast<const icu4x::LocaleDisplayNamesFormatter*>(ptr); +} + +inline icu4x::LocaleDisplayNamesFormatter* icu4x::LocaleDisplayNamesFormatter::FromFFI(icu4x::capi::LocaleDisplayNamesFormatter* ptr) { + return reinterpret_cast<icu4x::LocaleDisplayNamesFormatter*>(ptr); +} + +inline void icu4x::LocaleDisplayNamesFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_LocaleDisplayNamesFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleDisplayNamesFormatter*>(ptr)); +} + + +#endif // icu4x_LocaleDisplayNamesFormatter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleExpander.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleExpander.d.hpp new file mode 100644 index 00000000000..11934c115b9 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleExpander.d.hpp @@ -0,0 +1,59 @@ +#ifndef icu4x_LocaleExpander_D_HPP +#define icu4x_LocaleExpander_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct LocaleExpander; } +class LocaleExpander; +class Error; +class TransformResult; +} + + +namespace icu4x { +namespace capi { + struct LocaleExpander; +} // namespace capi +} // namespace + +namespace icu4x { +class LocaleExpander { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error> create(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error> create_extended(const icu4x::DataProvider& provider); + + inline icu4x::TransformResult maximize(icu4x::Locale& locale) const; + + inline icu4x::TransformResult minimize(icu4x::Locale& locale) const; + + inline icu4x::TransformResult minimize_favor_script(icu4x::Locale& locale) const; + + inline const icu4x::capi::LocaleExpander* AsFFI() const; + inline icu4x::capi::LocaleExpander* AsFFI(); + inline static const icu4x::LocaleExpander* FromFFI(const icu4x::capi::LocaleExpander* ptr); + inline static icu4x::LocaleExpander* FromFFI(icu4x::capi::LocaleExpander* ptr); + inline static void operator delete(void* ptr); +private: + LocaleExpander() = delete; + LocaleExpander(const icu4x::LocaleExpander&) = delete; + LocaleExpander(icu4x::LocaleExpander&&) noexcept = delete; + LocaleExpander operator=(const icu4x::LocaleExpander&) = delete; + LocaleExpander operator=(icu4x::LocaleExpander&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LocaleExpander_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleExpander.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleExpander.hpp new file mode 100644 index 00000000000..4bdcb01ece9 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleExpander.hpp @@ -0,0 +1,91 @@ +#ifndef icu4x_LocaleExpander_HPP +#define icu4x_LocaleExpander_HPP + +#include "LocaleExpander.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataProvider.hpp" +#include "Error.hpp" +#include "Locale.hpp" +#include "TransformResult.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_LocaleExpander_create_mv1_result {union {icu4x::capi::LocaleExpander* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_LocaleExpander_create_mv1_result; + icu4x_LocaleExpander_create_mv1_result icu4x_LocaleExpander_create_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_LocaleExpander_create_extended_mv1_result {union {icu4x::capi::LocaleExpander* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_LocaleExpander_create_extended_mv1_result; + icu4x_LocaleExpander_create_extended_mv1_result icu4x_LocaleExpander_create_extended_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::TransformResult icu4x_LocaleExpander_maximize_mv1(const icu4x::capi::LocaleExpander* self, icu4x::capi::Locale* locale); + + icu4x::capi::TransformResult icu4x_LocaleExpander_minimize_mv1(const icu4x::capi::LocaleExpander* self, icu4x::capi::Locale* locale); + + icu4x::capi::TransformResult icu4x_LocaleExpander_minimize_favor_script_mv1(const icu4x::capi::LocaleExpander* self, icu4x::capi::Locale* locale); + + + void icu4x_LocaleExpander_destroy_mv1(LocaleExpander* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error> icu4x::LocaleExpander::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LocaleExpander_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::LocaleExpander>>(std::unique_ptr<icu4x::LocaleExpander>(icu4x::LocaleExpander::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error> icu4x::LocaleExpander::create_extended(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LocaleExpander_create_extended_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::LocaleExpander>>(std::unique_ptr<icu4x::LocaleExpander>(icu4x::LocaleExpander::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleExpander>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline icu4x::TransformResult icu4x::LocaleExpander::maximize(icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleExpander_maximize_mv1(this->AsFFI(), + locale.AsFFI()); + return icu4x::TransformResult::FromFFI(result); +} + +inline icu4x::TransformResult icu4x::LocaleExpander::minimize(icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleExpander_minimize_mv1(this->AsFFI(), + locale.AsFFI()); + return icu4x::TransformResult::FromFFI(result); +} + +inline icu4x::TransformResult icu4x::LocaleExpander::minimize_favor_script(icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleExpander_minimize_favor_script_mv1(this->AsFFI(), + locale.AsFFI()); + return icu4x::TransformResult::FromFFI(result); +} + +inline const icu4x::capi::LocaleExpander* icu4x::LocaleExpander::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LocaleExpander*>(this); +} + +inline icu4x::capi::LocaleExpander* icu4x::LocaleExpander::AsFFI() { + return reinterpret_cast<icu4x::capi::LocaleExpander*>(this); +} + +inline const icu4x::LocaleExpander* icu4x::LocaleExpander::FromFFI(const icu4x::capi::LocaleExpander* ptr) { + return reinterpret_cast<const icu4x::LocaleExpander*>(ptr); +} + +inline icu4x::LocaleExpander* icu4x::LocaleExpander::FromFFI(icu4x::capi::LocaleExpander* ptr) { + return reinterpret_cast<icu4x::LocaleExpander*>(ptr); +} + +inline void icu4x::LocaleExpander::operator delete(void* ptr) { + icu4x::capi::icu4x_LocaleExpander_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleExpander*>(ptr)); +} + + +#endif // icu4x_LocaleExpander_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.d.hpp new file mode 100644 index 00000000000..0c79dfcd6bf --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.d.hpp @@ -0,0 +1,42 @@ +#ifndef icu4x_LocaleFallbackConfig_D_HPP +#define icu4x_LocaleFallbackConfig_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "LocaleFallbackPriority.d.hpp" +#include "LocaleFallbackSupplement.d.hpp" + +namespace icu4x { +class LocaleFallbackPriority; +class LocaleFallbackSupplement; +} + + +namespace icu4x { +namespace capi { + struct LocaleFallbackConfig { + icu4x::capi::LocaleFallbackPriority priority; + diplomat::capi::DiplomatStringView extension_key; + icu4x::capi::LocaleFallbackSupplement fallback_supplement; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct LocaleFallbackConfig { + icu4x::LocaleFallbackPriority priority; + std::string_view extension_key; + icu4x::LocaleFallbackSupplement fallback_supplement; + + inline icu4x::capi::LocaleFallbackConfig AsFFI() const; + inline static icu4x::LocaleFallbackConfig FromFFI(icu4x::capi::LocaleFallbackConfig c_struct); +}; + +} // namespace +#endif // icu4x_LocaleFallbackConfig_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.hpp new file mode 100644 index 00000000000..102981eed34 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackConfig.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_LocaleFallbackConfig_HPP +#define icu4x_LocaleFallbackConfig_HPP + +#include "LocaleFallbackConfig.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "LocaleFallbackPriority.hpp" +#include "LocaleFallbackSupplement.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::LocaleFallbackConfig icu4x::LocaleFallbackConfig::AsFFI() const { + return icu4x::capi::LocaleFallbackConfig { + /* .priority = */ priority.AsFFI(), + /* .extension_key = */ {extension_key.data(), extension_key.size()}, + /* .fallback_supplement = */ fallback_supplement.AsFFI(), + }; +} + +inline icu4x::LocaleFallbackConfig icu4x::LocaleFallbackConfig::FromFFI(icu4x::capi::LocaleFallbackConfig c_struct) { + return icu4x::LocaleFallbackConfig { + /* .priority = */ icu4x::LocaleFallbackPriority::FromFFI(c_struct.priority), + /* .extension_key = */ std::string_view(c_struct.extension_key.data, c_struct.extension_key.len), + /* .fallback_supplement = */ icu4x::LocaleFallbackSupplement::FromFFI(c_struct.fallback_supplement), + }; +} + + +#endif // icu4x_LocaleFallbackConfig_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.d.hpp new file mode 100644 index 00000000000..a0a75377536 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.d.hpp @@ -0,0 +1,45 @@ +#ifndef icu4x_LocaleFallbackIterator_D_HPP +#define icu4x_LocaleFallbackIterator_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Locale; } +class Locale; +} + + +namespace icu4x { +namespace capi { + struct LocaleFallbackIterator; +} // namespace capi +} // namespace + +namespace icu4x { +class LocaleFallbackIterator { +public: + + inline std::unique_ptr<icu4x::Locale> next(); + + inline const icu4x::capi::LocaleFallbackIterator* AsFFI() const; + inline icu4x::capi::LocaleFallbackIterator* AsFFI(); + inline static const icu4x::LocaleFallbackIterator* FromFFI(const icu4x::capi::LocaleFallbackIterator* ptr); + inline static icu4x::LocaleFallbackIterator* FromFFI(icu4x::capi::LocaleFallbackIterator* ptr); + inline static void operator delete(void* ptr); +private: + LocaleFallbackIterator() = delete; + LocaleFallbackIterator(const icu4x::LocaleFallbackIterator&) = delete; + LocaleFallbackIterator(icu4x::LocaleFallbackIterator&&) noexcept = delete; + LocaleFallbackIterator operator=(const icu4x::LocaleFallbackIterator&) = delete; + LocaleFallbackIterator operator=(icu4x::LocaleFallbackIterator&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LocaleFallbackIterator_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.hpp new file mode 100644 index 00000000000..9f16eb5a71c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackIterator.hpp @@ -0,0 +1,55 @@ +#ifndef icu4x_LocaleFallbackIterator_HPP +#define icu4x_LocaleFallbackIterator_HPP + +#include "LocaleFallbackIterator.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::Locale* icu4x_LocaleFallbackIterator_next_mv1(icu4x::capi::LocaleFallbackIterator* self); + + + void icu4x_LocaleFallbackIterator_destroy_mv1(LocaleFallbackIterator* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline std::unique_ptr<icu4x::Locale> icu4x::LocaleFallbackIterator::next() { + auto result = icu4x::capi::icu4x_LocaleFallbackIterator_next_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result)); +} + +inline const icu4x::capi::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LocaleFallbackIterator*>(this); +} + +inline icu4x::capi::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::AsFFI() { + return reinterpret_cast<icu4x::capi::LocaleFallbackIterator*>(this); +} + +inline const icu4x::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::FromFFI(const icu4x::capi::LocaleFallbackIterator* ptr) { + return reinterpret_cast<const icu4x::LocaleFallbackIterator*>(ptr); +} + +inline icu4x::LocaleFallbackIterator* icu4x::LocaleFallbackIterator::FromFFI(icu4x::capi::LocaleFallbackIterator* ptr) { + return reinterpret_cast<icu4x::LocaleFallbackIterator*>(ptr); +} + +inline void icu4x::LocaleFallbackIterator::operator delete(void* ptr) { + icu4x::capi::icu4x_LocaleFallbackIterator_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleFallbackIterator*>(ptr)); +} + + +#endif // icu4x_LocaleFallbackIterator_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackPriority.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackPriority.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/LocaleFallbackPriority.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LocaleFallbackPriority.d.hpp index 56a765b236a..5b137ffa74d 100644 --- a/ffi/capi/bindings/cpp/LocaleFallbackPriority.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackPriority.d.hpp @@ -1,5 +1,5 @@ -#ifndef LocaleFallbackPriority_D_HPP -#define LocaleFallbackPriority_D_HPP +#ifndef icu4x_LocaleFallbackPriority_D_HPP +#define icu4x_LocaleFallbackPriority_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LocaleFallbackPriority { LocaleFallbackPriority_Language = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LocaleFallbackPriority { public: enum Value { @@ -35,11 +36,11 @@ class LocaleFallbackPriority { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LocaleFallbackPriority AsFFI() const; - inline static LocaleFallbackPriority FromFFI(diplomat::capi::LocaleFallbackPriority c_enum); + inline icu4x::capi::LocaleFallbackPriority AsFFI() const; + inline static icu4x::LocaleFallbackPriority FromFFI(icu4x::capi::LocaleFallbackPriority c_enum); private: Value value; }; - -#endif // LocaleFallbackPriority_D_HPP +} // namespace +#endif // icu4x_LocaleFallbackPriority_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackPriority.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackPriority.hpp new file mode 100644 index 00000000000..6b9a5608154 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackPriority.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_LocaleFallbackPriority_HPP +#define icu4x_LocaleFallbackPriority_HPP + +#include "LocaleFallbackPriority.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LocaleFallbackPriority icu4x::LocaleFallbackPriority::AsFFI() const { + return static_cast<icu4x::capi::LocaleFallbackPriority>(value); +} + +inline icu4x::LocaleFallbackPriority icu4x::LocaleFallbackPriority::FromFFI(icu4x::capi::LocaleFallbackPriority c_enum) { + switch (c_enum) { + case icu4x::capi::LocaleFallbackPriority_Language: + case icu4x::capi::LocaleFallbackPriority_Region: + case icu4x::capi::LocaleFallbackPriority_Collation: + return static_cast<icu4x::LocaleFallbackPriority::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LocaleFallbackPriority_HPP diff --git a/ffi/capi/bindings/cpp/LocaleFallbackSupplement.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackSupplement.d.hpp similarity index 64% rename from ffi/capi/bindings/cpp/LocaleFallbackSupplement.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LocaleFallbackSupplement.d.hpp index 11356caa8b7..51245b1316d 100644 --- a/ffi/capi/bindings/cpp/LocaleFallbackSupplement.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackSupplement.d.hpp @@ -1,5 +1,5 @@ -#ifndef LocaleFallbackSupplement_D_HPP -#define LocaleFallbackSupplement_D_HPP +#ifndef icu4x_LocaleFallbackSupplement_D_HPP +#define icu4x_LocaleFallbackSupplement_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LocaleFallbackSupplement { LocaleFallbackSupplement_None = 0, @@ -19,6 +19,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LocaleFallbackSupplement { public: enum Value { @@ -33,11 +34,11 @@ class LocaleFallbackSupplement { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LocaleFallbackSupplement AsFFI() const; - inline static LocaleFallbackSupplement FromFFI(diplomat::capi::LocaleFallbackSupplement c_enum); + inline icu4x::capi::LocaleFallbackSupplement AsFFI() const; + inline static icu4x::LocaleFallbackSupplement FromFFI(icu4x::capi::LocaleFallbackSupplement c_enum); private: Value value; }; - -#endif // LocaleFallbackSupplement_D_HPP +} // namespace +#endif // icu4x_LocaleFallbackSupplement_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackSupplement.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackSupplement.hpp new file mode 100644 index 00000000000..356da64a8be --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackSupplement.hpp @@ -0,0 +1,37 @@ +#ifndef icu4x_LocaleFallbackSupplement_HPP +#define icu4x_LocaleFallbackSupplement_HPP + +#include "LocaleFallbackSupplement.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LocaleFallbackSupplement icu4x::LocaleFallbackSupplement::AsFFI() const { + return static_cast<icu4x::capi::LocaleFallbackSupplement>(value); +} + +inline icu4x::LocaleFallbackSupplement icu4x::LocaleFallbackSupplement::FromFFI(icu4x::capi::LocaleFallbackSupplement c_enum) { + switch (c_enum) { + case icu4x::capi::LocaleFallbackSupplement_None: + case icu4x::capi::LocaleFallbackSupplement_Collation: + return static_cast<icu4x::LocaleFallbackSupplement::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LocaleFallbackSupplement_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.d.hpp new file mode 100644 index 00000000000..42928fafff7 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.d.hpp @@ -0,0 +1,56 @@ +#ifndef icu4x_LocaleFallbacker_D_HPP +#define icu4x_LocaleFallbacker_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct LocaleFallbacker; } +class LocaleFallbacker; +namespace capi { struct LocaleFallbackerWithConfig; } +class LocaleFallbackerWithConfig; +struct LocaleFallbackConfig; +class DataError; +class LocaleParseError; +} + + +namespace icu4x { +namespace capi { + struct LocaleFallbacker; +} // namespace capi +} // namespace + +namespace icu4x { +class LocaleFallbacker { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline static std::unique_ptr<icu4x::LocaleFallbacker> without_data(); + + inline diplomat::result<std::unique_ptr<icu4x::LocaleFallbackerWithConfig>, icu4x::LocaleParseError> for_config(icu4x::LocaleFallbackConfig config) const; + + inline const icu4x::capi::LocaleFallbacker* AsFFI() const; + inline icu4x::capi::LocaleFallbacker* AsFFI(); + inline static const icu4x::LocaleFallbacker* FromFFI(const icu4x::capi::LocaleFallbacker* ptr); + inline static icu4x::LocaleFallbacker* FromFFI(icu4x::capi::LocaleFallbacker* ptr); + inline static void operator delete(void* ptr); +private: + LocaleFallbacker() = delete; + LocaleFallbacker(const icu4x::LocaleFallbacker&) = delete; + LocaleFallbacker(icu4x::LocaleFallbacker&&) noexcept = delete; + LocaleFallbacker operator=(const icu4x::LocaleFallbacker&) = delete; + LocaleFallbacker operator=(icu4x::LocaleFallbacker&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LocaleFallbacker_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.hpp new file mode 100644 index 00000000000..287c1697e43 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbacker.hpp @@ -0,0 +1,76 @@ +#ifndef icu4x_LocaleFallbacker_HPP +#define icu4x_LocaleFallbacker_HPP + +#include "LocaleFallbacker.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "LocaleFallbackConfig.hpp" +#include "LocaleFallbackerWithConfig.hpp" +#include "LocaleParseError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_LocaleFallbacker_create_mv1_result {union {icu4x::capi::LocaleFallbacker* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_LocaleFallbacker_create_mv1_result; + icu4x_LocaleFallbacker_create_mv1_result icu4x_LocaleFallbacker_create_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::LocaleFallbacker* icu4x_LocaleFallbacker_without_data_mv1(void); + + typedef struct icu4x_LocaleFallbacker_for_config_mv1_result {union {icu4x::capi::LocaleFallbackerWithConfig* ok; icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_LocaleFallbacker_for_config_mv1_result; + icu4x_LocaleFallbacker_for_config_mv1_result icu4x_LocaleFallbacker_for_config_mv1(const icu4x::capi::LocaleFallbacker* self, icu4x::capi::LocaleFallbackConfig config); + + + void icu4x_LocaleFallbacker_destroy_mv1(LocaleFallbacker* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError> icu4x::LocaleFallbacker::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_LocaleFallbacker_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleFallbacker>>(std::unique_ptr<icu4x::LocaleFallbacker>(icu4x::LocaleFallbacker::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleFallbacker>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::LocaleFallbacker> icu4x::LocaleFallbacker::without_data() { + auto result = icu4x::capi::icu4x_LocaleFallbacker_without_data_mv1(); + return std::unique_ptr<icu4x::LocaleFallbacker>(icu4x::LocaleFallbacker::FromFFI(result)); +} + +inline diplomat::result<std::unique_ptr<icu4x::LocaleFallbackerWithConfig>, icu4x::LocaleParseError> icu4x::LocaleFallbacker::for_config(icu4x::LocaleFallbackConfig config) const { + auto result = icu4x::capi::icu4x_LocaleFallbacker_for_config_mv1(this->AsFFI(), + config.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::LocaleFallbackerWithConfig>, icu4x::LocaleParseError>(diplomat::Ok<std::unique_ptr<icu4x::LocaleFallbackerWithConfig>>(std::unique_ptr<icu4x::LocaleFallbackerWithConfig>(icu4x::LocaleFallbackerWithConfig::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::LocaleFallbackerWithConfig>, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err))); +} + +inline const icu4x::capi::LocaleFallbacker* icu4x::LocaleFallbacker::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LocaleFallbacker*>(this); +} + +inline icu4x::capi::LocaleFallbacker* icu4x::LocaleFallbacker::AsFFI() { + return reinterpret_cast<icu4x::capi::LocaleFallbacker*>(this); +} + +inline const icu4x::LocaleFallbacker* icu4x::LocaleFallbacker::FromFFI(const icu4x::capi::LocaleFallbacker* ptr) { + return reinterpret_cast<const icu4x::LocaleFallbacker*>(ptr); +} + +inline icu4x::LocaleFallbacker* icu4x::LocaleFallbacker::FromFFI(icu4x::capi::LocaleFallbacker* ptr) { + return reinterpret_cast<icu4x::LocaleFallbacker*>(ptr); +} + +inline void icu4x::LocaleFallbacker::operator delete(void* ptr) { + icu4x::capi::icu4x_LocaleFallbacker_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleFallbacker*>(ptr)); +} + + +#endif // icu4x_LocaleFallbacker_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.d.hpp new file mode 100644 index 00000000000..f932ca4451a --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.d.hpp @@ -0,0 +1,47 @@ +#ifndef icu4x_LocaleFallbackerWithConfig_D_HPP +#define icu4x_LocaleFallbackerWithConfig_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Locale; } +class Locale; +namespace capi { struct LocaleFallbackIterator; } +class LocaleFallbackIterator; +} + + +namespace icu4x { +namespace capi { + struct LocaleFallbackerWithConfig; +} // namespace capi +} // namespace + +namespace icu4x { +class LocaleFallbackerWithConfig { +public: + + inline std::unique_ptr<icu4x::LocaleFallbackIterator> fallback_for_locale(const icu4x::Locale& locale) const; + + inline const icu4x::capi::LocaleFallbackerWithConfig* AsFFI() const; + inline icu4x::capi::LocaleFallbackerWithConfig* AsFFI(); + inline static const icu4x::LocaleFallbackerWithConfig* FromFFI(const icu4x::capi::LocaleFallbackerWithConfig* ptr); + inline static icu4x::LocaleFallbackerWithConfig* FromFFI(icu4x::capi::LocaleFallbackerWithConfig* ptr); + inline static void operator delete(void* ptr); +private: + LocaleFallbackerWithConfig() = delete; + LocaleFallbackerWithConfig(const icu4x::LocaleFallbackerWithConfig&) = delete; + LocaleFallbackerWithConfig(icu4x::LocaleFallbackerWithConfig&&) noexcept = delete; + LocaleFallbackerWithConfig operator=(const icu4x::LocaleFallbackerWithConfig&) = delete; + LocaleFallbackerWithConfig operator=(icu4x::LocaleFallbackerWithConfig&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_LocaleFallbackerWithConfig_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.hpp new file mode 100644 index 00000000000..769769a7300 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleFallbackerWithConfig.hpp @@ -0,0 +1,57 @@ +#ifndef icu4x_LocaleFallbackerWithConfig_HPP +#define icu4x_LocaleFallbackerWithConfig_HPP + +#include "LocaleFallbackerWithConfig.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "Locale.hpp" +#include "LocaleFallbackIterator.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::LocaleFallbackIterator* icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(const icu4x::capi::LocaleFallbackerWithConfig* self, const icu4x::capi::Locale* locale); + + + void icu4x_LocaleFallbackerWithConfig_destroy_mv1(LocaleFallbackerWithConfig* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline std::unique_ptr<icu4x::LocaleFallbackIterator> icu4x::LocaleFallbackerWithConfig::fallback_for_locale(const icu4x::Locale& locale) const { + auto result = icu4x::capi::icu4x_LocaleFallbackerWithConfig_fallback_for_locale_mv1(this->AsFFI(), + locale.AsFFI()); + return std::unique_ptr<icu4x::LocaleFallbackIterator>(icu4x::LocaleFallbackIterator::FromFFI(result)); +} + +inline const icu4x::capi::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::AsFFI() const { + return reinterpret_cast<const icu4x::capi::LocaleFallbackerWithConfig*>(this); +} + +inline icu4x::capi::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::AsFFI() { + return reinterpret_cast<icu4x::capi::LocaleFallbackerWithConfig*>(this); +} + +inline const icu4x::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::FromFFI(const icu4x::capi::LocaleFallbackerWithConfig* ptr) { + return reinterpret_cast<const icu4x::LocaleFallbackerWithConfig*>(ptr); +} + +inline icu4x::LocaleFallbackerWithConfig* icu4x::LocaleFallbackerWithConfig::FromFFI(icu4x::capi::LocaleFallbackerWithConfig* ptr) { + return reinterpret_cast<icu4x::LocaleFallbackerWithConfig*>(ptr); +} + +inline void icu4x::LocaleFallbackerWithConfig::operator delete(void* ptr) { + icu4x::capi::icu4x_LocaleFallbackerWithConfig_destroy_mv1(reinterpret_cast<icu4x::capi::LocaleFallbackerWithConfig*>(ptr)); +} + + +#endif // icu4x_LocaleFallbackerWithConfig_HPP diff --git a/ffi/capi/bindings/cpp/LocaleParseError.d.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleParseError.d.hpp similarity index 69% rename from ffi/capi/bindings/cpp/LocaleParseError.d.hpp rename to ffi/capi/bindings/cpp/icu4x/LocaleParseError.d.hpp index 18ac451d133..d6db2420b87 100644 --- a/ffi/capi/bindings/cpp/LocaleParseError.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/LocaleParseError.d.hpp @@ -1,5 +1,5 @@ -#ifndef LocaleParseError_D_HPP -#define LocaleParseError_D_HPP +#ifndef icu4x_LocaleParseError_D_HPP +#define icu4x_LocaleParseError_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum LocaleParseError { LocaleParseError_Unknown = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class LocaleParseError { public: enum Value { @@ -37,11 +38,11 @@ class LocaleParseError { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::LocaleParseError AsFFI() const; - inline static LocaleParseError FromFFI(diplomat::capi::LocaleParseError c_enum); + inline icu4x::capi::LocaleParseError AsFFI() const; + inline static icu4x::LocaleParseError FromFFI(icu4x::capi::LocaleParseError c_enum); private: Value value; }; - -#endif // LocaleParseError_D_HPP +} // namespace +#endif // icu4x_LocaleParseError_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/LocaleParseError.hpp b/ffi/capi/bindings/cpp/icu4x/LocaleParseError.hpp new file mode 100644 index 00000000000..a5a5326daef --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/LocaleParseError.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_LocaleParseError_HPP +#define icu4x_LocaleParseError_HPP + +#include "LocaleParseError.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::LocaleParseError icu4x::LocaleParseError::AsFFI() const { + return static_cast<icu4x::capi::LocaleParseError>(value); +} + +inline icu4x::LocaleParseError icu4x::LocaleParseError::FromFFI(icu4x::capi::LocaleParseError c_enum) { + switch (c_enum) { + case icu4x::capi::LocaleParseError_Unknown: + case icu4x::capi::LocaleParseError_Language: + case icu4x::capi::LocaleParseError_Subtag: + case icu4x::capi::LocaleParseError_Extension: + return static_cast<icu4x::LocaleParseError::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_LocaleParseError_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Logger.d.hpp b/ffi/capi/bindings/cpp/icu4x/Logger.d.hpp new file mode 100644 index 00000000000..7fb47dbc193 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Logger.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_Logger_D_HPP +#define icu4x_Logger_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct Logger; +} // namespace capi +} // namespace + +namespace icu4x { +class Logger { +public: + + inline static bool init_simple_logger(); + + inline const icu4x::capi::Logger* AsFFI() const; + inline icu4x::capi::Logger* AsFFI(); + inline static const icu4x::Logger* FromFFI(const icu4x::capi::Logger* ptr); + inline static icu4x::Logger* FromFFI(icu4x::capi::Logger* ptr); + inline static void operator delete(void* ptr); +private: + Logger() = delete; + Logger(const icu4x::Logger&) = delete; + Logger(icu4x::Logger&&) noexcept = delete; + Logger operator=(const icu4x::Logger&) = delete; + Logger operator=(icu4x::Logger&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_Logger_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Logger.hpp b/ffi/capi/bindings/cpp/icu4x/Logger.hpp new file mode 100644 index 00000000000..fe60472853c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Logger.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_Logger_HPP +#define icu4x_Logger_HPP + +#include "Logger.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + bool icu4x_Logger_init_simple_logger_mv1(void); + + + void icu4x_Logger_destroy_mv1(Logger* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline bool icu4x::Logger::init_simple_logger() { + auto result = icu4x::capi::icu4x_Logger_init_simple_logger_mv1(); + return result; +} + +inline const icu4x::capi::Logger* icu4x::Logger::AsFFI() const { + return reinterpret_cast<const icu4x::capi::Logger*>(this); +} + +inline icu4x::capi::Logger* icu4x::Logger::AsFFI() { + return reinterpret_cast<icu4x::capi::Logger*>(this); +} + +inline const icu4x::Logger* icu4x::Logger::FromFFI(const icu4x::capi::Logger* ptr) { + return reinterpret_cast<const icu4x::Logger*>(ptr); +} + +inline icu4x::Logger* icu4x::Logger::FromFFI(icu4x::capi::Logger* ptr) { + return reinterpret_cast<icu4x::Logger*>(ptr); +} + +inline void icu4x::Logger::operator delete(void* ptr) { + icu4x::capi::icu4x_Logger_destroy_mv1(reinterpret_cast<icu4x::capi::Logger*>(ptr)); +} + + +#endif // icu4x_Logger_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/MeasureUnit.d.hpp b/ffi/capi/bindings/cpp/icu4x/MeasureUnit.d.hpp new file mode 100644 index 00000000000..19918adc239 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/MeasureUnit.d.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_MeasureUnit_D_HPP +#define icu4x_MeasureUnit_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct MeasureUnit; +} // namespace capi +} // namespace + +namespace icu4x { +class MeasureUnit { +public: + + inline const icu4x::capi::MeasureUnit* AsFFI() const; + inline icu4x::capi::MeasureUnit* AsFFI(); + inline static const icu4x::MeasureUnit* FromFFI(const icu4x::capi::MeasureUnit* ptr); + inline static icu4x::MeasureUnit* FromFFI(icu4x::capi::MeasureUnit* ptr); + inline static void operator delete(void* ptr); +private: + MeasureUnit() = delete; + MeasureUnit(const icu4x::MeasureUnit&) = delete; + MeasureUnit(icu4x::MeasureUnit&&) noexcept = delete; + MeasureUnit operator=(const icu4x::MeasureUnit&) = delete; + MeasureUnit operator=(icu4x::MeasureUnit&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_MeasureUnit_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/MeasureUnit.hpp b/ffi/capi/bindings/cpp/icu4x/MeasureUnit.hpp new file mode 100644 index 00000000000..4219105acc1 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/MeasureUnit.hpp @@ -0,0 +1,47 @@ +#ifndef icu4x_MeasureUnit_HPP +#define icu4x_MeasureUnit_HPP + +#include "MeasureUnit.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + void icu4x_MeasureUnit_destroy_mv1(MeasureUnit* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline const icu4x::capi::MeasureUnit* icu4x::MeasureUnit::AsFFI() const { + return reinterpret_cast<const icu4x::capi::MeasureUnit*>(this); +} + +inline icu4x::capi::MeasureUnit* icu4x::MeasureUnit::AsFFI() { + return reinterpret_cast<icu4x::capi::MeasureUnit*>(this); +} + +inline const icu4x::MeasureUnit* icu4x::MeasureUnit::FromFFI(const icu4x::capi::MeasureUnit* ptr) { + return reinterpret_cast<const icu4x::MeasureUnit*>(ptr); +} + +inline icu4x::MeasureUnit* icu4x::MeasureUnit::FromFFI(icu4x::capi::MeasureUnit* ptr) { + return reinterpret_cast<icu4x::MeasureUnit*>(ptr); +} + +inline void icu4x::MeasureUnit::operator delete(void* ptr) { + icu4x::capi::icu4x_MeasureUnit_destroy_mv1(reinterpret_cast<icu4x::capi::MeasureUnit*>(ptr)); +} + + +#endif // icu4x_MeasureUnit_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.d.hpp b/ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.d.hpp new file mode 100644 index 00000000000..b7e7762c285 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.d.hpp @@ -0,0 +1,45 @@ +#ifndef icu4x_MeasureUnitParser_D_HPP +#define icu4x_MeasureUnitParser_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct MeasureUnit; } +class MeasureUnit; +} + + +namespace icu4x { +namespace capi { + struct MeasureUnitParser; +} // namespace capi +} // namespace + +namespace icu4x { +class MeasureUnitParser { +public: + + inline std::unique_ptr<icu4x::MeasureUnit> parse(std::string_view unit_id) const; + + inline const icu4x::capi::MeasureUnitParser* AsFFI() const; + inline icu4x::capi::MeasureUnitParser* AsFFI(); + inline static const icu4x::MeasureUnitParser* FromFFI(const icu4x::capi::MeasureUnitParser* ptr); + inline static icu4x::MeasureUnitParser* FromFFI(icu4x::capi::MeasureUnitParser* ptr); + inline static void operator delete(void* ptr); +private: + MeasureUnitParser() = delete; + MeasureUnitParser(const icu4x::MeasureUnitParser&) = delete; + MeasureUnitParser(icu4x::MeasureUnitParser&&) noexcept = delete; + MeasureUnitParser operator=(const icu4x::MeasureUnitParser&) = delete; + MeasureUnitParser operator=(icu4x::MeasureUnitParser&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_MeasureUnitParser_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.hpp b/ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.hpp new file mode 100644 index 00000000000..9a3703ea43e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/MeasureUnitParser.hpp @@ -0,0 +1,57 @@ +#ifndef icu4x_MeasureUnitParser_HPP +#define icu4x_MeasureUnitParser_HPP + +#include "MeasureUnitParser.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "MeasureUnit.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::MeasureUnit* icu4x_MeasureUnitParser_parse_mv1(const icu4x::capi::MeasureUnitParser* self, const char* unit_id_data, size_t unit_id_len); + + + void icu4x_MeasureUnitParser_destroy_mv1(MeasureUnitParser* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline std::unique_ptr<icu4x::MeasureUnit> icu4x::MeasureUnitParser::parse(std::string_view unit_id) const { + auto result = icu4x::capi::icu4x_MeasureUnitParser_parse_mv1(this->AsFFI(), + unit_id.data(), + unit_id.size()); + return std::unique_ptr<icu4x::MeasureUnit>(icu4x::MeasureUnit::FromFFI(result)); +} + +inline const icu4x::capi::MeasureUnitParser* icu4x::MeasureUnitParser::AsFFI() const { + return reinterpret_cast<const icu4x::capi::MeasureUnitParser*>(this); +} + +inline icu4x::capi::MeasureUnitParser* icu4x::MeasureUnitParser::AsFFI() { + return reinterpret_cast<icu4x::capi::MeasureUnitParser*>(this); +} + +inline const icu4x::MeasureUnitParser* icu4x::MeasureUnitParser::FromFFI(const icu4x::capi::MeasureUnitParser* ptr) { + return reinterpret_cast<const icu4x::MeasureUnitParser*>(ptr); +} + +inline icu4x::MeasureUnitParser* icu4x::MeasureUnitParser::FromFFI(icu4x::capi::MeasureUnitParser* ptr) { + return reinterpret_cast<icu4x::MeasureUnitParser*>(ptr); +} + +inline void icu4x::MeasureUnitParser::operator delete(void* ptr) { + icu4x::capi::icu4x_MeasureUnitParser_destroy_mv1(reinterpret_cast<icu4x::capi::MeasureUnitParser*>(ptr)); +} + + +#endif // icu4x_MeasureUnitParser_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.d.hpp b/ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.d.hpp new file mode 100644 index 00000000000..a60308a2493 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.d.hpp @@ -0,0 +1,48 @@ +#ifndef icu4x_MetazoneCalculator_D_HPP +#define icu4x_MetazoneCalculator_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct MetazoneCalculator; } +class MetazoneCalculator; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct MetazoneCalculator; +} // namespace capi +} // namespace + +namespace icu4x { +class MetazoneCalculator { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::MetazoneCalculator>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline const icu4x::capi::MetazoneCalculator* AsFFI() const; + inline icu4x::capi::MetazoneCalculator* AsFFI(); + inline static const icu4x::MetazoneCalculator* FromFFI(const icu4x::capi::MetazoneCalculator* ptr); + inline static icu4x::MetazoneCalculator* FromFFI(icu4x::capi::MetazoneCalculator* ptr); + inline static void operator delete(void* ptr); +private: + MetazoneCalculator() = delete; + MetazoneCalculator(const icu4x::MetazoneCalculator&) = delete; + MetazoneCalculator(icu4x::MetazoneCalculator&&) noexcept = delete; + MetazoneCalculator operator=(const icu4x::MetazoneCalculator&) = delete; + MetazoneCalculator operator=(icu4x::MetazoneCalculator&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_MetazoneCalculator_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.hpp b/ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.hpp new file mode 100644 index 00000000000..6274dd544f1 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/MetazoneCalculator.hpp @@ -0,0 +1,57 @@ +#ifndef icu4x_MetazoneCalculator_HPP +#define icu4x_MetazoneCalculator_HPP + +#include "MetazoneCalculator.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_MetazoneCalculator_create_mv1_result {union {icu4x::capi::MetazoneCalculator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_MetazoneCalculator_create_mv1_result; + icu4x_MetazoneCalculator_create_mv1_result icu4x_MetazoneCalculator_create_mv1(const icu4x::capi::DataProvider* provider); + + + void icu4x_MetazoneCalculator_destroy_mv1(MetazoneCalculator* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::MetazoneCalculator>, icu4x::DataError> icu4x::MetazoneCalculator::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_MetazoneCalculator_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::MetazoneCalculator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::MetazoneCalculator>>(std::unique_ptr<icu4x::MetazoneCalculator>(icu4x::MetazoneCalculator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::MetazoneCalculator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline const icu4x::capi::MetazoneCalculator* icu4x::MetazoneCalculator::AsFFI() const { + return reinterpret_cast<const icu4x::capi::MetazoneCalculator*>(this); +} + +inline icu4x::capi::MetazoneCalculator* icu4x::MetazoneCalculator::AsFFI() { + return reinterpret_cast<icu4x::capi::MetazoneCalculator*>(this); +} + +inline const icu4x::MetazoneCalculator* icu4x::MetazoneCalculator::FromFFI(const icu4x::capi::MetazoneCalculator* ptr) { + return reinterpret_cast<const icu4x::MetazoneCalculator*>(ptr); +} + +inline icu4x::MetazoneCalculator* icu4x::MetazoneCalculator::FromFFI(icu4x::capi::MetazoneCalculator* ptr) { + return reinterpret_cast<icu4x::MetazoneCalculator*>(ptr); +} + +inline void icu4x::MetazoneCalculator::operator delete(void* ptr) { + icu4x::capi::icu4x_MetazoneCalculator_destroy_mv1(reinterpret_cast<icu4x::capi::MetazoneCalculator*>(ptr)); +} + + +#endif // icu4x_MetazoneCalculator_HPP diff --git a/ffi/capi/bindings/cpp/PluralCategories.d.hpp b/ffi/capi/bindings/cpp/icu4x/PluralCategories.d.hpp similarity index 55% rename from ffi/capi/bindings/cpp/PluralCategories.d.hpp rename to ffi/capi/bindings/cpp/icu4x/PluralCategories.d.hpp index d4418f7c18a..82cdc22c22e 100644 --- a/ffi/capi/bindings/cpp/PluralCategories.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/PluralCategories.d.hpp @@ -1,5 +1,5 @@ -#ifndef PluralCategories_D_HPP -#define PluralCategories_D_HPP +#ifndef icu4x_PluralCategories_D_HPP +#define icu4x_PluralCategories_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { struct PluralCategories { bool zero; @@ -24,6 +24,7 @@ namespace capi { } // namespace +namespace icu4x { struct PluralCategories { bool zero; bool one; @@ -32,9 +33,9 @@ struct PluralCategories { bool many; bool other; - inline diplomat::capi::PluralCategories AsFFI() const; - inline static PluralCategories FromFFI(diplomat::capi::PluralCategories c_struct); + inline icu4x::capi::PluralCategories AsFFI() const; + inline static icu4x::PluralCategories FromFFI(icu4x::capi::PluralCategories c_struct); }; - -#endif // PluralCategories_D_HPP +} // namespace +#endif // icu4x_PluralCategories_D_HPP diff --git a/ffi/capi/bindings/cpp/PluralCategories.hpp b/ffi/capi/bindings/cpp/icu4x/PluralCategories.hpp similarity index 59% rename from ffi/capi/bindings/cpp/PluralCategories.hpp rename to ffi/capi/bindings/cpp/icu4x/PluralCategories.hpp index f70c1705f03..9203ab21872 100644 --- a/ffi/capi/bindings/cpp/PluralCategories.hpp +++ b/ffi/capi/bindings/cpp/icu4x/PluralCategories.hpp @@ -1,5 +1,5 @@ -#ifndef PluralCategories_HPP -#define PluralCategories_HPP +#ifndef icu4x_PluralCategories_HPP +#define icu4x_PluralCategories_HPP #include "PluralCategories.d.hpp" @@ -9,10 +9,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { extern "C" { @@ -22,8 +22,8 @@ namespace capi { } // namespace -inline diplomat::capi::PluralCategories PluralCategories::AsFFI() const { - return diplomat::capi::PluralCategories { +inline icu4x::capi::PluralCategories icu4x::PluralCategories::AsFFI() const { + return icu4x::capi::PluralCategories { /* .zero = */ zero, /* .one = */ one, /* .two = */ two, @@ -33,8 +33,8 @@ inline diplomat::capi::PluralCategories PluralCategories::AsFFI() const { }; } -inline PluralCategories PluralCategories::FromFFI(diplomat::capi::PluralCategories c_struct) { - return PluralCategories { +inline icu4x::PluralCategories icu4x::PluralCategories::FromFFI(icu4x::capi::PluralCategories c_struct) { + return icu4x::PluralCategories { /* .zero = */ c_struct.zero, /* .one = */ c_struct.one, /* .two = */ c_struct.two, @@ -45,4 +45,4 @@ inline PluralCategories PluralCategories::FromFFI(diplomat::capi::PluralCategori } -#endif // PluralCategories_HPP +#endif // icu4x_PluralCategories_HPP diff --git a/ffi/capi/bindings/cpp/PluralCategory.d.hpp b/ffi/capi/bindings/cpp/icu4x/PluralCategory.d.hpp similarity index 63% rename from ffi/capi/bindings/cpp/PluralCategory.d.hpp rename to ffi/capi/bindings/cpp/icu4x/PluralCategory.d.hpp index effb520b733..8fcd6591348 100644 --- a/ffi/capi/bindings/cpp/PluralCategory.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/PluralCategory.d.hpp @@ -1,5 +1,5 @@ -#ifndef PluralCategory_D_HPP -#define PluralCategory_D_HPP +#ifndef icu4x_PluralCategory_D_HPP +#define icu4x_PluralCategory_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,14 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" +namespace icu4x { +class PluralCategory; +} -namespace diplomat { + +namespace icu4x { namespace capi { enum PluralCategory { PluralCategory_Zero = 0, @@ -23,6 +27,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class PluralCategory { public: enum Value { @@ -41,13 +46,13 @@ class PluralCategory { // Prevent usage as boolean value explicit operator bool() const = delete; - inline static std::optional<PluralCategory> get_for_cldr_string(std::string_view s); + inline static std::optional<icu4x::PluralCategory> get_for_cldr_string(std::string_view s); - inline diplomat::capi::PluralCategory AsFFI() const; - inline static PluralCategory FromFFI(diplomat::capi::PluralCategory c_enum); + inline icu4x::capi::PluralCategory AsFFI() const; + inline static icu4x::PluralCategory FromFFI(icu4x::capi::PluralCategory c_enum); private: Value value; }; - -#endif // PluralCategory_D_HPP +} // namespace +#endif // icu4x_PluralCategory_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/PluralCategory.hpp b/ffi/capi/bindings/cpp/icu4x/PluralCategory.hpp new file mode 100644 index 00000000000..5fd2c85a639 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/PluralCategory.hpp @@ -0,0 +1,50 @@ +#ifndef icu4x_PluralCategory_HPP +#define icu4x_PluralCategory_HPP + +#include "PluralCategory.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_PluralCategory_get_for_cldr_string_mv1_result {union {icu4x::capi::PluralCategory ok; }; bool is_ok;} icu4x_PluralCategory_get_for_cldr_string_mv1_result; + icu4x_PluralCategory_get_for_cldr_string_mv1_result icu4x_PluralCategory_get_for_cldr_string_mv1(const char* s_data, size_t s_len); + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::PluralCategory icu4x::PluralCategory::AsFFI() const { + return static_cast<icu4x::capi::PluralCategory>(value); +} + +inline icu4x::PluralCategory icu4x::PluralCategory::FromFFI(icu4x::capi::PluralCategory c_enum) { + switch (c_enum) { + case icu4x::capi::PluralCategory_Zero: + case icu4x::capi::PluralCategory_One: + case icu4x::capi::PluralCategory_Two: + case icu4x::capi::PluralCategory_Few: + case icu4x::capi::PluralCategory_Many: + case icu4x::capi::PluralCategory_Other: + return static_cast<icu4x::PluralCategory::Value>(c_enum); + default: + abort(); + } +} + +inline std::optional<icu4x::PluralCategory> icu4x::PluralCategory::get_for_cldr_string(std::string_view s) { + auto result = icu4x::capi::icu4x_PluralCategory_get_for_cldr_string_mv1(s.data(), + s.size()); + return result.is_ok ? std::optional<icu4x::PluralCategory>(icu4x::PluralCategory::FromFFI(result.ok)) : std::nullopt; +} +#endif // icu4x_PluralCategory_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/PluralOperands.d.hpp b/ffi/capi/bindings/cpp/icu4x/PluralOperands.d.hpp new file mode 100644 index 00000000000..27ec9275592 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/PluralOperands.d.hpp @@ -0,0 +1,50 @@ +#ifndef icu4x_PluralOperands_D_HPP +#define icu4x_PluralOperands_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct FixedDecimal; } +class FixedDecimal; +namespace capi { struct PluralOperands; } +class PluralOperands; +class FixedDecimalParseError; +} + + +namespace icu4x { +namespace capi { + struct PluralOperands; +} // namespace capi +} // namespace + +namespace icu4x { +class PluralOperands { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError> from_string(std::string_view s); + + inline static std::unique_ptr<icu4x::PluralOperands> from_fixed_decimal(const icu4x::FixedDecimal& x); + + inline const icu4x::capi::PluralOperands* AsFFI() const; + inline icu4x::capi::PluralOperands* AsFFI(); + inline static const icu4x::PluralOperands* FromFFI(const icu4x::capi::PluralOperands* ptr); + inline static icu4x::PluralOperands* FromFFI(icu4x::capi::PluralOperands* ptr); + inline static void operator delete(void* ptr); +private: + PluralOperands() = delete; + PluralOperands(const icu4x::PluralOperands&) = delete; + PluralOperands(icu4x::PluralOperands&&) noexcept = delete; + PluralOperands operator=(const icu4x::PluralOperands&) = delete; + PluralOperands operator=(icu4x::PluralOperands&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_PluralOperands_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/PluralOperands.hpp b/ffi/capi/bindings/cpp/icu4x/PluralOperands.hpp new file mode 100644 index 00000000000..f657c8b6660 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/PluralOperands.hpp @@ -0,0 +1,65 @@ +#ifndef icu4x_PluralOperands_HPP +#define icu4x_PluralOperands_HPP + +#include "PluralOperands.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "FixedDecimal.hpp" +#include "FixedDecimalParseError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_PluralOperands_from_string_mv1_result {union {icu4x::capi::PluralOperands* ok; icu4x::capi::FixedDecimalParseError err;}; bool is_ok;} icu4x_PluralOperands_from_string_mv1_result; + icu4x_PluralOperands_from_string_mv1_result icu4x_PluralOperands_from_string_mv1(const char* s_data, size_t s_len); + + icu4x::capi::PluralOperands* icu4x_PluralOperands_from_fixed_decimal_mv1(const icu4x::capi::FixedDecimal* x); + + + void icu4x_PluralOperands_destroy_mv1(PluralOperands* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError> icu4x::PluralOperands::from_string(std::string_view s) { + auto result = icu4x::capi::icu4x_PluralOperands_from_string_mv1(s.data(), + s.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError>(diplomat::Ok<std::unique_ptr<icu4x::PluralOperands>>(std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError>(diplomat::Err<icu4x::FixedDecimalParseError>(icu4x::FixedDecimalParseError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::PluralOperands> icu4x::PluralOperands::from_fixed_decimal(const icu4x::FixedDecimal& x) { + auto result = icu4x::capi::icu4x_PluralOperands_from_fixed_decimal_mv1(x.AsFFI()); + return std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result)); +} + +inline const icu4x::capi::PluralOperands* icu4x::PluralOperands::AsFFI() const { + return reinterpret_cast<const icu4x::capi::PluralOperands*>(this); +} + +inline icu4x::capi::PluralOperands* icu4x::PluralOperands::AsFFI() { + return reinterpret_cast<icu4x::capi::PluralOperands*>(this); +} + +inline const icu4x::PluralOperands* icu4x::PluralOperands::FromFFI(const icu4x::capi::PluralOperands* ptr) { + return reinterpret_cast<const icu4x::PluralOperands*>(ptr); +} + +inline icu4x::PluralOperands* icu4x::PluralOperands::FromFFI(icu4x::capi::PluralOperands* ptr) { + return reinterpret_cast<icu4x::PluralOperands*>(ptr); +} + +inline void icu4x::PluralOperands::operator delete(void* ptr) { + icu4x::capi::icu4x_PluralOperands_destroy_mv1(reinterpret_cast<icu4x::capi::PluralOperands*>(ptr)); +} + + +#endif // icu4x_PluralOperands_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/PluralRules.d.hpp b/ffi/capi/bindings/cpp/icu4x/PluralRules.d.hpp new file mode 100644 index 00000000000..e490d2f6c14 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/PluralRules.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_PluralRules_D_HPP +#define icu4x_PluralRules_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct PluralOperands; } +class PluralOperands; +namespace capi { struct PluralRules; } +class PluralRules; +struct PluralCategories; +class DataError; +class PluralCategory; +} + + +namespace icu4x { +namespace capi { + struct PluralRules; +} // namespace capi +} // namespace + +namespace icu4x { +class PluralRules { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> create_cardinal(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> create_ordinal(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline icu4x::PluralCategory category_for(const icu4x::PluralOperands& op) const; + + inline icu4x::PluralCategories categories() const; + + inline const icu4x::capi::PluralRules* AsFFI() const; + inline icu4x::capi::PluralRules* AsFFI(); + inline static const icu4x::PluralRules* FromFFI(const icu4x::capi::PluralRules* ptr); + inline static icu4x::PluralRules* FromFFI(icu4x::capi::PluralRules* ptr); + inline static void operator delete(void* ptr); +private: + PluralRules() = delete; + PluralRules(const icu4x::PluralRules&) = delete; + PluralRules(icu4x::PluralRules&&) noexcept = delete; + PluralRules operator=(const icu4x::PluralRules&) = delete; + PluralRules operator=(icu4x::PluralRules&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_PluralRules_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/PluralRules.hpp b/ffi/capi/bindings/cpp/icu4x/PluralRules.hpp new file mode 100644 index 00000000000..7a53c9bb2d9 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/PluralRules.hpp @@ -0,0 +1,86 @@ +#ifndef icu4x_PluralRules_HPP +#define icu4x_PluralRules_HPP + +#include "PluralRules.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" +#include "PluralCategories.hpp" +#include "PluralCategory.hpp" +#include "PluralOperands.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_PluralRules_create_cardinal_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_mv1_result; + icu4x_PluralRules_create_cardinal_mv1_result icu4x_PluralRules_create_cardinal_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_PluralRules_create_ordinal_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_mv1_result; + icu4x_PluralRules_create_ordinal_mv1_result icu4x_PluralRules_create_ordinal_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + icu4x::capi::PluralCategory icu4x_PluralRules_category_for_mv1(const icu4x::capi::PluralRules* self, const icu4x::capi::PluralOperands* op); + + icu4x::capi::PluralCategories icu4x_PluralRules_categories_mv1(const icu4x::capi::PluralRules* self); + + + void icu4x_PluralRules_destroy_mv1(PluralRules* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> icu4x::PluralRules::create_cardinal(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_PluralRules_create_cardinal_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError> icu4x::PluralRules::create_ordinal(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_PluralRules_create_ordinal_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline icu4x::PluralCategory icu4x::PluralRules::category_for(const icu4x::PluralOperands& op) const { + auto result = icu4x::capi::icu4x_PluralRules_category_for_mv1(this->AsFFI(), + op.AsFFI()); + return icu4x::PluralCategory::FromFFI(result); +} + +inline icu4x::PluralCategories icu4x::PluralRules::categories() const { + auto result = icu4x::capi::icu4x_PluralRules_categories_mv1(this->AsFFI()); + return icu4x::PluralCategories::FromFFI(result); +} + +inline const icu4x::capi::PluralRules* icu4x::PluralRules::AsFFI() const { + return reinterpret_cast<const icu4x::capi::PluralRules*>(this); +} + +inline icu4x::capi::PluralRules* icu4x::PluralRules::AsFFI() { + return reinterpret_cast<icu4x::capi::PluralRules*>(this); +} + +inline const icu4x::PluralRules* icu4x::PluralRules::FromFFI(const icu4x::capi::PluralRules* ptr) { + return reinterpret_cast<const icu4x::PluralRules*>(ptr); +} + +inline icu4x::PluralRules* icu4x::PluralRules::FromFFI(icu4x::capi::PluralRules* ptr) { + return reinterpret_cast<icu4x::PluralRules*>(ptr); +} + +inline void icu4x::PluralRules::operator delete(void* ptr) { + icu4x::capi::icu4x_PluralRules_destroy_mv1(reinterpret_cast<icu4x::capi::PluralRules*>(ptr)); +} + + +#endif // icu4x_PluralRules_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.d.hpp b/ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.d.hpp new file mode 100644 index 00000000000..30c1e2d1e62 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.d.hpp @@ -0,0 +1,70 @@ +#ifndef icu4x_PropertyValueNameToEnumMapper_D_HPP +#define icu4x_PropertyValueNameToEnumMapper_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct PropertyValueNameToEnumMapper; } +class PropertyValueNameToEnumMapper; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct PropertyValueNameToEnumMapper; +} // namespace capi +} // namespace + +namespace icu4x { +class PropertyValueNameToEnumMapper { +public: + + inline int16_t get_strict(std::string_view name) const; + + inline int16_t get_loose(std::string_view name) const; + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_general_category(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_hangul_syllable_type(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_east_asian_width(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_bidi_class(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_indic_syllabic_category(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_line_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_grapheme_cluster_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_word_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_sentence_break(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> load_script(const icu4x::DataProvider& provider); + + inline const icu4x::capi::PropertyValueNameToEnumMapper* AsFFI() const; + inline icu4x::capi::PropertyValueNameToEnumMapper* AsFFI(); + inline static const icu4x::PropertyValueNameToEnumMapper* FromFFI(const icu4x::capi::PropertyValueNameToEnumMapper* ptr); + inline static icu4x::PropertyValueNameToEnumMapper* FromFFI(icu4x::capi::PropertyValueNameToEnumMapper* ptr); + inline static void operator delete(void* ptr); +private: + PropertyValueNameToEnumMapper() = delete; + PropertyValueNameToEnumMapper(const icu4x::PropertyValueNameToEnumMapper&) = delete; + PropertyValueNameToEnumMapper(icu4x::PropertyValueNameToEnumMapper&&) noexcept = delete; + PropertyValueNameToEnumMapper operator=(const icu4x::PropertyValueNameToEnumMapper&) = delete; + PropertyValueNameToEnumMapper operator=(icu4x::PropertyValueNameToEnumMapper&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_PropertyValueNameToEnumMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.hpp b/ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.hpp new file mode 100644 index 00000000000..72fedbc3a84 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/PropertyValueNameToEnumMapper.hpp @@ -0,0 +1,147 @@ +#ifndef icu4x_PropertyValueNameToEnumMapper_HPP +#define icu4x_PropertyValueNameToEnumMapper_HPP + +#include "PropertyValueNameToEnumMapper.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int16_t icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(const icu4x::capi::PropertyValueNameToEnumMapper* self, const char* name_data, size_t name_len); + + int16_t icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(const icu4x::capi::PropertyValueNameToEnumMapper* self, const char* name_data, size_t name_len); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1_result icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1_result icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1_result icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1_result icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1_result icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1_result icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_PropertyValueNameToEnumMapper_load_script_mv1_result {union {icu4x::capi::PropertyValueNameToEnumMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PropertyValueNameToEnumMapper_load_script_mv1_result; + icu4x_PropertyValueNameToEnumMapper_load_script_mv1_result icu4x_PropertyValueNameToEnumMapper_load_script_mv1(const icu4x::capi::DataProvider* provider); + + + void icu4x_PropertyValueNameToEnumMapper_destroy_mv1(PropertyValueNameToEnumMapper* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int16_t icu4x::PropertyValueNameToEnumMapper::get_strict(std::string_view name) const { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_get_strict_mv1(this->AsFFI(), + name.data(), + name.size()); + return result; +} + +inline int16_t icu4x::PropertyValueNameToEnumMapper::get_loose(std::string_view name) const { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_get_loose_mv1(this->AsFFI(), + name.data(), + name.size()); + return result; +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_general_category(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_general_category_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_hangul_syllable_type(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_hangul_syllable_type_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_east_asian_width(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_east_asian_width_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_bidi_class(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_bidi_class_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_indic_syllabic_category(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_indic_syllabic_category_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_line_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_line_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_grapheme_cluster_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_grapheme_cluster_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_word_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_word_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_sentence_break(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_sentence_break_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError> icu4x::PropertyValueNameToEnumMapper::load_script(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_PropertyValueNameToEnumMapper_load_script_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>>(std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>(icu4x::PropertyValueNameToEnumMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PropertyValueNameToEnumMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline const icu4x::capi::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::AsFFI() const { + return reinterpret_cast<const icu4x::capi::PropertyValueNameToEnumMapper*>(this); +} + +inline icu4x::capi::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::AsFFI() { + return reinterpret_cast<icu4x::capi::PropertyValueNameToEnumMapper*>(this); +} + +inline const icu4x::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::FromFFI(const icu4x::capi::PropertyValueNameToEnumMapper* ptr) { + return reinterpret_cast<const icu4x::PropertyValueNameToEnumMapper*>(ptr); +} + +inline icu4x::PropertyValueNameToEnumMapper* icu4x::PropertyValueNameToEnumMapper::FromFFI(icu4x::capi::PropertyValueNameToEnumMapper* ptr) { + return reinterpret_cast<icu4x::PropertyValueNameToEnumMapper*>(ptr); +} + +inline void icu4x::PropertyValueNameToEnumMapper::operator delete(void* ptr) { + icu4x::capi::icu4x_PropertyValueNameToEnumMapper_destroy_mv1(reinterpret_cast<icu4x::capi::PropertyValueNameToEnumMapper*>(ptr)); +} + + +#endif // icu4x_PropertyValueNameToEnumMapper_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.d.hpp b/ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.d.hpp new file mode 100644 index 00000000000..f102af2ff89 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.d.hpp @@ -0,0 +1,53 @@ +#ifndef icu4x_RegionDisplayNames_D_HPP +#define icu4x_RegionDisplayNames_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct RegionDisplayNames; } +class RegionDisplayNames; +class DataError; +class LocaleParseError; +} + + +namespace icu4x { +namespace capi { + struct RegionDisplayNames; +} // namespace capi +} // namespace + +namespace icu4x { +class RegionDisplayNames { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError> create(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline diplomat::result<std::string, icu4x::LocaleParseError> of(std::string_view region) const; + + inline const icu4x::capi::RegionDisplayNames* AsFFI() const; + inline icu4x::capi::RegionDisplayNames* AsFFI(); + inline static const icu4x::RegionDisplayNames* FromFFI(const icu4x::capi::RegionDisplayNames* ptr); + inline static icu4x::RegionDisplayNames* FromFFI(icu4x::capi::RegionDisplayNames* ptr); + inline static void operator delete(void* ptr); +private: + RegionDisplayNames() = delete; + RegionDisplayNames(const icu4x::RegionDisplayNames&) = delete; + RegionDisplayNames(icu4x::RegionDisplayNames&&) noexcept = delete; + RegionDisplayNames operator=(const icu4x::RegionDisplayNames&) = delete; + RegionDisplayNames operator=(icu4x::RegionDisplayNames&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_RegionDisplayNames_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.hpp b/ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.hpp new file mode 100644 index 00000000000..968c961f972 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/RegionDisplayNames.hpp @@ -0,0 +1,73 @@ +#ifndef icu4x_RegionDisplayNames_HPP +#define icu4x_RegionDisplayNames_HPP + +#include "RegionDisplayNames.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" +#include "LocaleParseError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_RegionDisplayNames_create_mv1_result {union {icu4x::capi::RegionDisplayNames* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_RegionDisplayNames_create_mv1_result; + icu4x_RegionDisplayNames_create_mv1_result icu4x_RegionDisplayNames_create_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_RegionDisplayNames_of_mv1_result {union { icu4x::capi::LocaleParseError err;}; bool is_ok;} icu4x_RegionDisplayNames_of_mv1_result; + icu4x_RegionDisplayNames_of_mv1_result icu4x_RegionDisplayNames_of_mv1(const icu4x::capi::RegionDisplayNames* self, const char* region_data, size_t region_len, diplomat::capi::DiplomatWrite* write); + + + void icu4x_RegionDisplayNames_destroy_mv1(RegionDisplayNames* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError> icu4x::RegionDisplayNames::create(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_RegionDisplayNames_create_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::RegionDisplayNames>>(std::unique_ptr<icu4x::RegionDisplayNames>(icu4x::RegionDisplayNames::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::RegionDisplayNames>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::LocaleParseError> icu4x::RegionDisplayNames::of(std::string_view region) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_RegionDisplayNames_of_mv1(this->AsFFI(), + region.data(), + region.size(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::LocaleParseError>(diplomat::Err<icu4x::LocaleParseError>(icu4x::LocaleParseError::FromFFI(result.err))); +} + +inline const icu4x::capi::RegionDisplayNames* icu4x::RegionDisplayNames::AsFFI() const { + return reinterpret_cast<const icu4x::capi::RegionDisplayNames*>(this); +} + +inline icu4x::capi::RegionDisplayNames* icu4x::RegionDisplayNames::AsFFI() { + return reinterpret_cast<icu4x::capi::RegionDisplayNames*>(this); +} + +inline const icu4x::RegionDisplayNames* icu4x::RegionDisplayNames::FromFFI(const icu4x::capi::RegionDisplayNames* ptr) { + return reinterpret_cast<const icu4x::RegionDisplayNames*>(ptr); +} + +inline icu4x::RegionDisplayNames* icu4x::RegionDisplayNames::FromFFI(icu4x::capi::RegionDisplayNames* ptr) { + return reinterpret_cast<icu4x::RegionDisplayNames*>(ptr); +} + +inline void icu4x::RegionDisplayNames::operator delete(void* ptr) { + icu4x::capi::icu4x_RegionDisplayNames_destroy_mv1(reinterpret_cast<icu4x::capi::RegionDisplayNames*>(ptr)); +} + + +#endif // icu4x_RegionDisplayNames_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.d.hpp b/ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.d.hpp new file mode 100644 index 00000000000..f3e2ba2ee25 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.d.hpp @@ -0,0 +1,46 @@ +#ifndef icu4x_ReorderedIndexMap_D_HPP +#define icu4x_ReorderedIndexMap_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct ReorderedIndexMap; +} // namespace capi +} // namespace + +namespace icu4x { +class ReorderedIndexMap { +public: + + inline diplomat::span<const size_t> as_slice() const; + + inline size_t len() const; + + inline bool is_empty() const; + + inline size_t get(size_t index) const; + + inline const icu4x::capi::ReorderedIndexMap* AsFFI() const; + inline icu4x::capi::ReorderedIndexMap* AsFFI(); + inline static const icu4x::ReorderedIndexMap* FromFFI(const icu4x::capi::ReorderedIndexMap* ptr); + inline static icu4x::ReorderedIndexMap* FromFFI(icu4x::capi::ReorderedIndexMap* ptr); + inline static void operator delete(void* ptr); +private: + ReorderedIndexMap() = delete; + ReorderedIndexMap(const icu4x::ReorderedIndexMap&) = delete; + ReorderedIndexMap(icu4x::ReorderedIndexMap&&) noexcept = delete; + ReorderedIndexMap operator=(const icu4x::ReorderedIndexMap&) = delete; + ReorderedIndexMap operator=(icu4x::ReorderedIndexMap&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_ReorderedIndexMap_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.hpp b/ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.hpp new file mode 100644 index 00000000000..204659ea380 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ReorderedIndexMap.hpp @@ -0,0 +1,76 @@ +#ifndef icu4x_ReorderedIndexMap_HPP +#define icu4x_ReorderedIndexMap_HPP + +#include "ReorderedIndexMap.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + diplomat::capi::DiplomatUsizeView icu4x_ReorderedIndexMap_as_slice_mv1(const icu4x::capi::ReorderedIndexMap* self); + + size_t icu4x_ReorderedIndexMap_len_mv1(const icu4x::capi::ReorderedIndexMap* self); + + bool icu4x_ReorderedIndexMap_is_empty_mv1(const icu4x::capi::ReorderedIndexMap* self); + + size_t icu4x_ReorderedIndexMap_get_mv1(const icu4x::capi::ReorderedIndexMap* self, size_t index); + + + void icu4x_ReorderedIndexMap_destroy_mv1(ReorderedIndexMap* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::span<const size_t> icu4x::ReorderedIndexMap::as_slice() const { + auto result = icu4x::capi::icu4x_ReorderedIndexMap_as_slice_mv1(this->AsFFI()); + return diplomat::span<const size_t>(result.data, result.len); +} + +inline size_t icu4x::ReorderedIndexMap::len() const { + auto result = icu4x::capi::icu4x_ReorderedIndexMap_len_mv1(this->AsFFI()); + return result; +} + +inline bool icu4x::ReorderedIndexMap::is_empty() const { + auto result = icu4x::capi::icu4x_ReorderedIndexMap_is_empty_mv1(this->AsFFI()); + return result; +} + +inline size_t icu4x::ReorderedIndexMap::get(size_t index) const { + auto result = icu4x::capi::icu4x_ReorderedIndexMap_get_mv1(this->AsFFI(), + index); + return result; +} + +inline const icu4x::capi::ReorderedIndexMap* icu4x::ReorderedIndexMap::AsFFI() const { + return reinterpret_cast<const icu4x::capi::ReorderedIndexMap*>(this); +} + +inline icu4x::capi::ReorderedIndexMap* icu4x::ReorderedIndexMap::AsFFI() { + return reinterpret_cast<icu4x::capi::ReorderedIndexMap*>(this); +} + +inline const icu4x::ReorderedIndexMap* icu4x::ReorderedIndexMap::FromFFI(const icu4x::capi::ReorderedIndexMap* ptr) { + return reinterpret_cast<const icu4x::ReorderedIndexMap*>(ptr); +} + +inline icu4x::ReorderedIndexMap* icu4x::ReorderedIndexMap::FromFFI(icu4x::capi::ReorderedIndexMap* ptr) { + return reinterpret_cast<icu4x::ReorderedIndexMap*>(ptr); +} + +inline void icu4x::ReorderedIndexMap::operator delete(void* ptr) { + icu4x::capi::icu4x_ReorderedIndexMap_destroy_mv1(reinterpret_cast<icu4x::capi::ReorderedIndexMap*>(ptr)); +} + + +#endif // icu4x_ReorderedIndexMap_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.d.hpp b/ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.d.hpp new file mode 100644 index 00000000000..df82726c6a6 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.d.hpp @@ -0,0 +1,44 @@ +#ifndef icu4x_ScriptExtensionsSet_D_HPP +#define icu4x_ScriptExtensionsSet_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct ScriptExtensionsSet; +} // namespace capi +} // namespace + +namespace icu4x { +class ScriptExtensionsSet { +public: + + inline bool contains(uint16_t script) const; + + inline size_t count() const; + + inline std::optional<uint16_t> script_at(size_t index) const; + + inline const icu4x::capi::ScriptExtensionsSet* AsFFI() const; + inline icu4x::capi::ScriptExtensionsSet* AsFFI(); + inline static const icu4x::ScriptExtensionsSet* FromFFI(const icu4x::capi::ScriptExtensionsSet* ptr); + inline static icu4x::ScriptExtensionsSet* FromFFI(icu4x::capi::ScriptExtensionsSet* ptr); + inline static void operator delete(void* ptr); +private: + ScriptExtensionsSet() = delete; + ScriptExtensionsSet(const icu4x::ScriptExtensionsSet&) = delete; + ScriptExtensionsSet(icu4x::ScriptExtensionsSet&&) noexcept = delete; + ScriptExtensionsSet operator=(const icu4x::ScriptExtensionsSet&) = delete; + ScriptExtensionsSet operator=(icu4x::ScriptExtensionsSet&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_ScriptExtensionsSet_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.hpp b/ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.hpp new file mode 100644 index 00000000000..b9d921b9030 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ScriptExtensionsSet.hpp @@ -0,0 +1,71 @@ +#ifndef icu4x_ScriptExtensionsSet_HPP +#define icu4x_ScriptExtensionsSet_HPP + +#include "ScriptExtensionsSet.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + bool icu4x_ScriptExtensionsSet_contains_mv1(const icu4x::capi::ScriptExtensionsSet* self, uint16_t script); + + size_t icu4x_ScriptExtensionsSet_count_mv1(const icu4x::capi::ScriptExtensionsSet* self); + + typedef struct icu4x_ScriptExtensionsSet_script_at_mv1_result {union {uint16_t ok; }; bool is_ok;} icu4x_ScriptExtensionsSet_script_at_mv1_result; + icu4x_ScriptExtensionsSet_script_at_mv1_result icu4x_ScriptExtensionsSet_script_at_mv1(const icu4x::capi::ScriptExtensionsSet* self, size_t index); + + + void icu4x_ScriptExtensionsSet_destroy_mv1(ScriptExtensionsSet* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline bool icu4x::ScriptExtensionsSet::contains(uint16_t script) const { + auto result = icu4x::capi::icu4x_ScriptExtensionsSet_contains_mv1(this->AsFFI(), + script); + return result; +} + +inline size_t icu4x::ScriptExtensionsSet::count() const { + auto result = icu4x::capi::icu4x_ScriptExtensionsSet_count_mv1(this->AsFFI()); + return result; +} + +inline std::optional<uint16_t> icu4x::ScriptExtensionsSet::script_at(size_t index) const { + auto result = icu4x::capi::icu4x_ScriptExtensionsSet_script_at_mv1(this->AsFFI(), + index); + return result.is_ok ? std::optional<uint16_t>(result.ok) : std::nullopt; +} + +inline const icu4x::capi::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::AsFFI() const { + return reinterpret_cast<const icu4x::capi::ScriptExtensionsSet*>(this); +} + +inline icu4x::capi::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::AsFFI() { + return reinterpret_cast<icu4x::capi::ScriptExtensionsSet*>(this); +} + +inline const icu4x::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::FromFFI(const icu4x::capi::ScriptExtensionsSet* ptr) { + return reinterpret_cast<const icu4x::ScriptExtensionsSet*>(ptr); +} + +inline icu4x::ScriptExtensionsSet* icu4x::ScriptExtensionsSet::FromFFI(icu4x::capi::ScriptExtensionsSet* ptr) { + return reinterpret_cast<icu4x::ScriptExtensionsSet*>(ptr); +} + +inline void icu4x::ScriptExtensionsSet::operator delete(void* ptr) { + icu4x::capi::icu4x_ScriptExtensionsSet_destroy_mv1(reinterpret_cast<icu4x::capi::ScriptExtensionsSet*>(ptr)); +} + + +#endif // icu4x_ScriptExtensionsSet_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.d.hpp b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.d.hpp new file mode 100644 index 00000000000..1d47a2674cc --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_ScriptWithExtensions_D_HPP +#define icu4x_ScriptWithExtensions_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CodePointRangeIterator; } +class CodePointRangeIterator; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct ScriptWithExtensions; } +class ScriptWithExtensions; +namespace capi { struct ScriptWithExtensionsBorrowed; } +class ScriptWithExtensionsBorrowed; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct ScriptWithExtensions; +} // namespace capi +} // namespace + +namespace icu4x { +class ScriptWithExtensions { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline uint16_t get_script_val(uint32_t code_point) const; + + inline bool has_script(uint32_t code_point, uint16_t script) const; + + inline std::unique_ptr<icu4x::ScriptWithExtensionsBorrowed> as_borrowed() const; + + inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_script(uint16_t script) const; + + inline const icu4x::capi::ScriptWithExtensions* AsFFI() const; + inline icu4x::capi::ScriptWithExtensions* AsFFI(); + inline static const icu4x::ScriptWithExtensions* FromFFI(const icu4x::capi::ScriptWithExtensions* ptr); + inline static icu4x::ScriptWithExtensions* FromFFI(icu4x::capi::ScriptWithExtensions* ptr); + inline static void operator delete(void* ptr); +private: + ScriptWithExtensions() = delete; + ScriptWithExtensions(const icu4x::ScriptWithExtensions&) = delete; + ScriptWithExtensions(icu4x::ScriptWithExtensions&&) noexcept = delete; + ScriptWithExtensions operator=(const icu4x::ScriptWithExtensions&) = delete; + ScriptWithExtensions operator=(icu4x::ScriptWithExtensions&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_ScriptWithExtensions_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.hpp b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.hpp new file mode 100644 index 00000000000..58809683839 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensions.hpp @@ -0,0 +1,91 @@ +#ifndef icu4x_ScriptWithExtensions_HPP +#define icu4x_ScriptWithExtensions_HPP + +#include "ScriptWithExtensions.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointRangeIterator.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "ScriptWithExtensionsBorrowed.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_ScriptWithExtensions_create_mv1_result {union {icu4x::capi::ScriptWithExtensions* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ScriptWithExtensions_create_mv1_result; + icu4x_ScriptWithExtensions_create_mv1_result icu4x_ScriptWithExtensions_create_mv1(const icu4x::capi::DataProvider* provider); + + uint16_t icu4x_ScriptWithExtensions_get_script_val_mv1(const icu4x::capi::ScriptWithExtensions* self, uint32_t code_point); + + bool icu4x_ScriptWithExtensions_has_script_mv1(const icu4x::capi::ScriptWithExtensions* self, uint32_t code_point, uint16_t script); + + icu4x::capi::ScriptWithExtensionsBorrowed* icu4x_ScriptWithExtensions_as_borrowed_mv1(const icu4x::capi::ScriptWithExtensions* self); + + icu4x::capi::CodePointRangeIterator* icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(const icu4x::capi::ScriptWithExtensions* self, uint16_t script); + + + void icu4x_ScriptWithExtensions_destroy_mv1(ScriptWithExtensions* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError> icu4x::ScriptWithExtensions::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_ScriptWithExtensions_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ScriptWithExtensions>>(std::unique_ptr<icu4x::ScriptWithExtensions>(icu4x::ScriptWithExtensions::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline uint16_t icu4x::ScriptWithExtensions::get_script_val(uint32_t code_point) const { + auto result = icu4x::capi::icu4x_ScriptWithExtensions_get_script_val_mv1(this->AsFFI(), + code_point); + return result; +} + +inline bool icu4x::ScriptWithExtensions::has_script(uint32_t code_point, uint16_t script) const { + auto result = icu4x::capi::icu4x_ScriptWithExtensions_has_script_mv1(this->AsFFI(), + code_point, + script); + return result; +} + +inline std::unique_ptr<icu4x::ScriptWithExtensionsBorrowed> icu4x::ScriptWithExtensions::as_borrowed() const { + auto result = icu4x::capi::icu4x_ScriptWithExtensions_as_borrowed_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::ScriptWithExtensionsBorrowed>(icu4x::ScriptWithExtensionsBorrowed::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::CodePointRangeIterator> icu4x::ScriptWithExtensions::iter_ranges_for_script(uint16_t script) const { + auto result = icu4x::capi::icu4x_ScriptWithExtensions_iter_ranges_for_script_mv1(this->AsFFI(), + script); + return std::unique_ptr<icu4x::CodePointRangeIterator>(icu4x::CodePointRangeIterator::FromFFI(result)); +} + +inline const icu4x::capi::ScriptWithExtensions* icu4x::ScriptWithExtensions::AsFFI() const { + return reinterpret_cast<const icu4x::capi::ScriptWithExtensions*>(this); +} + +inline icu4x::capi::ScriptWithExtensions* icu4x::ScriptWithExtensions::AsFFI() { + return reinterpret_cast<icu4x::capi::ScriptWithExtensions*>(this); +} + +inline const icu4x::ScriptWithExtensions* icu4x::ScriptWithExtensions::FromFFI(const icu4x::capi::ScriptWithExtensions* ptr) { + return reinterpret_cast<const icu4x::ScriptWithExtensions*>(ptr); +} + +inline icu4x::ScriptWithExtensions* icu4x::ScriptWithExtensions::FromFFI(icu4x::capi::ScriptWithExtensions* ptr) { + return reinterpret_cast<icu4x::ScriptWithExtensions*>(ptr); +} + +inline void icu4x::ScriptWithExtensions::operator delete(void* ptr) { + icu4x::capi::icu4x_ScriptWithExtensions_destroy_mv1(reinterpret_cast<icu4x::capi::ScriptWithExtensions*>(ptr)); +} + + +#endif // icu4x_ScriptWithExtensions_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.d.hpp b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.d.hpp new file mode 100644 index 00000000000..9ebe66fb85a --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.d.hpp @@ -0,0 +1,53 @@ +#ifndef icu4x_ScriptWithExtensionsBorrowed_D_HPP +#define icu4x_ScriptWithExtensionsBorrowed_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CodePointSetData; } +class CodePointSetData; +namespace capi { struct ScriptExtensionsSet; } +class ScriptExtensionsSet; +} + + +namespace icu4x { +namespace capi { + struct ScriptWithExtensionsBorrowed; +} // namespace capi +} // namespace + +namespace icu4x { +class ScriptWithExtensionsBorrowed { +public: + + inline uint16_t get_script_val(uint32_t code_point) const; + + inline std::unique_ptr<icu4x::ScriptExtensionsSet> get_script_extensions_val(uint32_t code_point) const; + + inline bool has_script(uint32_t code_point, uint16_t script) const; + + inline std::unique_ptr<icu4x::CodePointSetData> get_script_extensions_set(uint16_t script) const; + + inline const icu4x::capi::ScriptWithExtensionsBorrowed* AsFFI() const; + inline icu4x::capi::ScriptWithExtensionsBorrowed* AsFFI(); + inline static const icu4x::ScriptWithExtensionsBorrowed* FromFFI(const icu4x::capi::ScriptWithExtensionsBorrowed* ptr); + inline static icu4x::ScriptWithExtensionsBorrowed* FromFFI(icu4x::capi::ScriptWithExtensionsBorrowed* ptr); + inline static void operator delete(void* ptr); +private: + ScriptWithExtensionsBorrowed() = delete; + ScriptWithExtensionsBorrowed(const icu4x::ScriptWithExtensionsBorrowed&) = delete; + ScriptWithExtensionsBorrowed(icu4x::ScriptWithExtensionsBorrowed&&) noexcept = delete; + ScriptWithExtensionsBorrowed operator=(const icu4x::ScriptWithExtensionsBorrowed&) = delete; + ScriptWithExtensionsBorrowed operator=(icu4x::ScriptWithExtensionsBorrowed&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_ScriptWithExtensionsBorrowed_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.hpp b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.hpp new file mode 100644 index 00000000000..fedcbd49f43 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ScriptWithExtensionsBorrowed.hpp @@ -0,0 +1,82 @@ +#ifndef icu4x_ScriptWithExtensionsBorrowed_HPP +#define icu4x_ScriptWithExtensionsBorrowed_HPP + +#include "ScriptWithExtensionsBorrowed.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CodePointSetData.hpp" +#include "ScriptExtensionsSet.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + uint16_t icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, uint32_t code_point); + + icu4x::capi::ScriptExtensionsSet* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, uint32_t code_point); + + bool icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, uint32_t code_point, uint16_t script); + + icu4x::capi::CodePointSetData* icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(const icu4x::capi::ScriptWithExtensionsBorrowed* self, uint16_t script); + + + void icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(ScriptWithExtensionsBorrowed* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline uint16_t icu4x::ScriptWithExtensionsBorrowed::get_script_val(uint32_t code_point) const { + auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_val_mv1(this->AsFFI(), + code_point); + return result; +} + +inline std::unique_ptr<icu4x::ScriptExtensionsSet> icu4x::ScriptWithExtensionsBorrowed::get_script_extensions_val(uint32_t code_point) const { + auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_val_mv1(this->AsFFI(), + code_point); + return std::unique_ptr<icu4x::ScriptExtensionsSet>(icu4x::ScriptExtensionsSet::FromFFI(result)); +} + +inline bool icu4x::ScriptWithExtensionsBorrowed::has_script(uint32_t code_point, uint16_t script) const { + auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_has_script_mv1(this->AsFFI(), + code_point, + script); + return result; +} + +inline std::unique_ptr<icu4x::CodePointSetData> icu4x::ScriptWithExtensionsBorrowed::get_script_extensions_set(uint16_t script) const { + auto result = icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_get_script_extensions_set_mv1(this->AsFFI(), + script); + return std::unique_ptr<icu4x::CodePointSetData>(icu4x::CodePointSetData::FromFFI(result)); +} + +inline const icu4x::capi::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::AsFFI() const { + return reinterpret_cast<const icu4x::capi::ScriptWithExtensionsBorrowed*>(this); +} + +inline icu4x::capi::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::AsFFI() { + return reinterpret_cast<icu4x::capi::ScriptWithExtensionsBorrowed*>(this); +} + +inline const icu4x::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::FromFFI(const icu4x::capi::ScriptWithExtensionsBorrowed* ptr) { + return reinterpret_cast<const icu4x::ScriptWithExtensionsBorrowed*>(ptr); +} + +inline icu4x::ScriptWithExtensionsBorrowed* icu4x::ScriptWithExtensionsBorrowed::FromFFI(icu4x::capi::ScriptWithExtensionsBorrowed* ptr) { + return reinterpret_cast<icu4x::ScriptWithExtensionsBorrowed*>(ptr); +} + +inline void icu4x::ScriptWithExtensionsBorrowed::operator delete(void* ptr) { + icu4x::capi::icu4x_ScriptWithExtensionsBorrowed_destroy_mv1(reinterpret_cast<icu4x::capi::ScriptWithExtensionsBorrowed*>(ptr)); +} + + +#endif // icu4x_ScriptWithExtensionsBorrowed_HPP diff --git a/ffi/capi/bindings/cpp/SegmenterWordType.d.hpp b/ffi/capi/bindings/cpp/icu4x/SegmenterWordType.d.hpp similarity index 68% rename from ffi/capi/bindings/cpp/SegmenterWordType.d.hpp rename to ffi/capi/bindings/cpp/icu4x/SegmenterWordType.d.hpp index 803a2392784..566fb55f30e 100644 --- a/ffi/capi/bindings/cpp/SegmenterWordType.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/SegmenterWordType.d.hpp @@ -1,5 +1,5 @@ -#ifndef SegmenterWordType_D_HPP -#define SegmenterWordType_D_HPP +#ifndef icu4x_SegmenterWordType_D_HPP +#define icu4x_SegmenterWordType_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum SegmenterWordType { SegmenterWordType_None = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class SegmenterWordType { public: enum Value { @@ -37,11 +38,11 @@ class SegmenterWordType { inline bool is_word_like(); - inline diplomat::capi::SegmenterWordType AsFFI() const; - inline static SegmenterWordType FromFFI(diplomat::capi::SegmenterWordType c_enum); + inline icu4x::capi::SegmenterWordType AsFFI() const; + inline static icu4x::SegmenterWordType FromFFI(icu4x::capi::SegmenterWordType c_enum); private: Value value; }; - -#endif // SegmenterWordType_D_HPP +} // namespace +#endif // icu4x_SegmenterWordType_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SegmenterWordType.hpp b/ffi/capi/bindings/cpp/icu4x/SegmenterWordType.hpp new file mode 100644 index 00000000000..d1fb76afc31 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SegmenterWordType.hpp @@ -0,0 +1,45 @@ +#ifndef icu4x_SegmenterWordType_HPP +#define icu4x_SegmenterWordType_HPP + +#include "SegmenterWordType.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + bool icu4x_SegmenterWordType_is_word_like_mv1(icu4x::capi::SegmenterWordType self); + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::SegmenterWordType icu4x::SegmenterWordType::AsFFI() const { + return static_cast<icu4x::capi::SegmenterWordType>(value); +} + +inline icu4x::SegmenterWordType icu4x::SegmenterWordType::FromFFI(icu4x::capi::SegmenterWordType c_enum) { + switch (c_enum) { + case icu4x::capi::SegmenterWordType_None: + case icu4x::capi::SegmenterWordType_Number: + case icu4x::capi::SegmenterWordType_Letter: + return static_cast<icu4x::SegmenterWordType::Value>(c_enum); + default: + abort(); + } +} + +inline bool icu4x::SegmenterWordType::is_word_like() { + auto result = icu4x::capi::icu4x_SegmenterWordType_is_word_like_mv1(this->AsFFI()); + return result; +} +#endif // icu4x_SegmenterWordType_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.d.hpp new file mode 100644 index 00000000000..471660636a0 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_SentenceBreakIteratorLatin1_D_HPP +#define icu4x_SentenceBreakIteratorLatin1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct SentenceBreakIteratorLatin1; +} // namespace capi +} // namespace + +namespace icu4x { +class SentenceBreakIteratorLatin1 { +public: + + inline int32_t next(); + + inline const icu4x::capi::SentenceBreakIteratorLatin1* AsFFI() const; + inline icu4x::capi::SentenceBreakIteratorLatin1* AsFFI(); + inline static const icu4x::SentenceBreakIteratorLatin1* FromFFI(const icu4x::capi::SentenceBreakIteratorLatin1* ptr); + inline static icu4x::SentenceBreakIteratorLatin1* FromFFI(icu4x::capi::SentenceBreakIteratorLatin1* ptr); + inline static void operator delete(void* ptr); +private: + SentenceBreakIteratorLatin1() = delete; + SentenceBreakIteratorLatin1(const icu4x::SentenceBreakIteratorLatin1&) = delete; + SentenceBreakIteratorLatin1(icu4x::SentenceBreakIteratorLatin1&&) noexcept = delete; + SentenceBreakIteratorLatin1 operator=(const icu4x::SentenceBreakIteratorLatin1&) = delete; + SentenceBreakIteratorLatin1 operator=(icu4x::SentenceBreakIteratorLatin1&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_SentenceBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.hpp new file mode 100644 index 00000000000..2da8cde9f2e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorLatin1.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_SentenceBreakIteratorLatin1_HPP +#define icu4x_SentenceBreakIteratorLatin1_HPP + +#include "SentenceBreakIteratorLatin1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_SentenceBreakIteratorLatin1_next_mv1(icu4x::capi::SentenceBreakIteratorLatin1* self); + + + void icu4x_SentenceBreakIteratorLatin1_destroy_mv1(SentenceBreakIteratorLatin1* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::SentenceBreakIteratorLatin1::next() { + auto result = icu4x::capi::icu4x_SentenceBreakIteratorLatin1_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::AsFFI() const { + return reinterpret_cast<const icu4x::capi::SentenceBreakIteratorLatin1*>(this); +} + +inline icu4x::capi::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::AsFFI() { + return reinterpret_cast<icu4x::capi::SentenceBreakIteratorLatin1*>(this); +} + +inline const icu4x::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::FromFFI(const icu4x::capi::SentenceBreakIteratorLatin1* ptr) { + return reinterpret_cast<const icu4x::SentenceBreakIteratorLatin1*>(ptr); +} + +inline icu4x::SentenceBreakIteratorLatin1* icu4x::SentenceBreakIteratorLatin1::FromFFI(icu4x::capi::SentenceBreakIteratorLatin1* ptr) { + return reinterpret_cast<icu4x::SentenceBreakIteratorLatin1*>(ptr); +} + +inline void icu4x::SentenceBreakIteratorLatin1::operator delete(void* ptr) { + icu4x::capi::icu4x_SentenceBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceBreakIteratorLatin1*>(ptr)); +} + + +#endif // icu4x_SentenceBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.d.hpp new file mode 100644 index 00000000000..5f5eb1fca2a --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_SentenceBreakIteratorUtf16_D_HPP +#define icu4x_SentenceBreakIteratorUtf16_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct SentenceBreakIteratorUtf16; +} // namespace capi +} // namespace + +namespace icu4x { +class SentenceBreakIteratorUtf16 { +public: + + inline int32_t next(); + + inline const icu4x::capi::SentenceBreakIteratorUtf16* AsFFI() const; + inline icu4x::capi::SentenceBreakIteratorUtf16* AsFFI(); + inline static const icu4x::SentenceBreakIteratorUtf16* FromFFI(const icu4x::capi::SentenceBreakIteratorUtf16* ptr); + inline static icu4x::SentenceBreakIteratorUtf16* FromFFI(icu4x::capi::SentenceBreakIteratorUtf16* ptr); + inline static void operator delete(void* ptr); +private: + SentenceBreakIteratorUtf16() = delete; + SentenceBreakIteratorUtf16(const icu4x::SentenceBreakIteratorUtf16&) = delete; + SentenceBreakIteratorUtf16(icu4x::SentenceBreakIteratorUtf16&&) noexcept = delete; + SentenceBreakIteratorUtf16 operator=(const icu4x::SentenceBreakIteratorUtf16&) = delete; + SentenceBreakIteratorUtf16 operator=(icu4x::SentenceBreakIteratorUtf16&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_SentenceBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.hpp new file mode 100644 index 00000000000..0c98be62fb9 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf16.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_SentenceBreakIteratorUtf16_HPP +#define icu4x_SentenceBreakIteratorUtf16_HPP + +#include "SentenceBreakIteratorUtf16.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_SentenceBreakIteratorUtf16_next_mv1(icu4x::capi::SentenceBreakIteratorUtf16* self); + + + void icu4x_SentenceBreakIteratorUtf16_destroy_mv1(SentenceBreakIteratorUtf16* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::SentenceBreakIteratorUtf16::next() { + auto result = icu4x::capi::icu4x_SentenceBreakIteratorUtf16_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::AsFFI() const { + return reinterpret_cast<const icu4x::capi::SentenceBreakIteratorUtf16*>(this); +} + +inline icu4x::capi::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::AsFFI() { + return reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf16*>(this); +} + +inline const icu4x::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::FromFFI(const icu4x::capi::SentenceBreakIteratorUtf16* ptr) { + return reinterpret_cast<const icu4x::SentenceBreakIteratorUtf16*>(ptr); +} + +inline icu4x::SentenceBreakIteratorUtf16* icu4x::SentenceBreakIteratorUtf16::FromFFI(icu4x::capi::SentenceBreakIteratorUtf16* ptr) { + return reinterpret_cast<icu4x::SentenceBreakIteratorUtf16*>(ptr); +} + +inline void icu4x::SentenceBreakIteratorUtf16::operator delete(void* ptr) { + icu4x::capi::icu4x_SentenceBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf16*>(ptr)); +} + + +#endif // icu4x_SentenceBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp new file mode 100644 index 00000000000..36eb329f8f2 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.d.hpp @@ -0,0 +1,40 @@ +#ifndef icu4x_SentenceBreakIteratorUtf8_D_HPP +#define icu4x_SentenceBreakIteratorUtf8_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + struct SentenceBreakIteratorUtf8; +} // namespace capi +} // namespace + +namespace icu4x { +class SentenceBreakIteratorUtf8 { +public: + + inline int32_t next(); + + inline const icu4x::capi::SentenceBreakIteratorUtf8* AsFFI() const; + inline icu4x::capi::SentenceBreakIteratorUtf8* AsFFI(); + inline static const icu4x::SentenceBreakIteratorUtf8* FromFFI(const icu4x::capi::SentenceBreakIteratorUtf8* ptr); + inline static icu4x::SentenceBreakIteratorUtf8* FromFFI(icu4x::capi::SentenceBreakIteratorUtf8* ptr); + inline static void operator delete(void* ptr); +private: + SentenceBreakIteratorUtf8() = delete; + SentenceBreakIteratorUtf8(const icu4x::SentenceBreakIteratorUtf8&) = delete; + SentenceBreakIteratorUtf8(icu4x::SentenceBreakIteratorUtf8&&) noexcept = delete; + SentenceBreakIteratorUtf8 operator=(const icu4x::SentenceBreakIteratorUtf8&) = delete; + SentenceBreakIteratorUtf8 operator=(icu4x::SentenceBreakIteratorUtf8&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_SentenceBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.hpp new file mode 100644 index 00000000000..d56b8324786 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceBreakIteratorUtf8.hpp @@ -0,0 +1,54 @@ +#ifndef icu4x_SentenceBreakIteratorUtf8_HPP +#define icu4x_SentenceBreakIteratorUtf8_HPP + +#include "SentenceBreakIteratorUtf8.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_SentenceBreakIteratorUtf8_next_mv1(icu4x::capi::SentenceBreakIteratorUtf8* self); + + + void icu4x_SentenceBreakIteratorUtf8_destroy_mv1(SentenceBreakIteratorUtf8* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::SentenceBreakIteratorUtf8::next() { + auto result = icu4x::capi::icu4x_SentenceBreakIteratorUtf8_next_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::AsFFI() const { + return reinterpret_cast<const icu4x::capi::SentenceBreakIteratorUtf8*>(this); +} + +inline icu4x::capi::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::AsFFI() { + return reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf8*>(this); +} + +inline const icu4x::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::FromFFI(const icu4x::capi::SentenceBreakIteratorUtf8* ptr) { + return reinterpret_cast<const icu4x::SentenceBreakIteratorUtf8*>(ptr); +} + +inline icu4x::SentenceBreakIteratorUtf8* icu4x::SentenceBreakIteratorUtf8::FromFFI(icu4x::capi::SentenceBreakIteratorUtf8* ptr) { + return reinterpret_cast<icu4x::SentenceBreakIteratorUtf8*>(ptr); +} + +inline void icu4x::SentenceBreakIteratorUtf8::operator delete(void* ptr) { + icu4x::capi::icu4x_SentenceBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceBreakIteratorUtf8*>(ptr)); +} + + +#endif // icu4x_SentenceBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.d.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.d.hpp new file mode 100644 index 00000000000..2e736841eb5 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_SentenceSegmenter_D_HPP +#define icu4x_SentenceSegmenter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct SentenceBreakIteratorLatin1; } +class SentenceBreakIteratorLatin1; +namespace capi { struct SentenceBreakIteratorUtf16; } +class SentenceBreakIteratorUtf16; +namespace capi { struct SentenceBreakIteratorUtf8; } +class SentenceBreakIteratorUtf8; +namespace capi { struct SentenceSegmenter; } +class SentenceSegmenter; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct SentenceSegmenter; +} // namespace capi +} // namespace + +namespace icu4x { +class SentenceSegmenter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf8> segment(std::string_view input) const; + + inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf16> segment16(std::u16string_view input) const; + + inline std::unique_ptr<icu4x::SentenceBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; + + inline const icu4x::capi::SentenceSegmenter* AsFFI() const; + inline icu4x::capi::SentenceSegmenter* AsFFI(); + inline static const icu4x::SentenceSegmenter* FromFFI(const icu4x::capi::SentenceSegmenter* ptr); + inline static icu4x::SentenceSegmenter* FromFFI(icu4x::capi::SentenceSegmenter* ptr); + inline static void operator delete(void* ptr); +private: + SentenceSegmenter() = delete; + SentenceSegmenter(const icu4x::SentenceSegmenter&) = delete; + SentenceSegmenter(icu4x::SentenceSegmenter&&) noexcept = delete; + SentenceSegmenter operator=(const icu4x::SentenceSegmenter&) = delete; + SentenceSegmenter operator=(icu4x::SentenceSegmenter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_SentenceSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.hpp b/ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.hpp new file mode 100644 index 00000000000..6d373d0d803 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/SentenceSegmenter.hpp @@ -0,0 +1,87 @@ +#ifndef icu4x_SentenceSegmenter_HPP +#define icu4x_SentenceSegmenter_HPP + +#include "SentenceSegmenter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "SentenceBreakIteratorLatin1.hpp" +#include "SentenceBreakIteratorUtf16.hpp" +#include "SentenceBreakIteratorUtf8.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_SentenceSegmenter_create_mv1_result {union {icu4x::capi::SentenceSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_SentenceSegmenter_create_mv1_result; + icu4x_SentenceSegmenter_create_mv1_result icu4x_SentenceSegmenter_create_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::SentenceBreakIteratorUtf8* icu4x_SentenceSegmenter_segment_utf8_mv1(const icu4x::capi::SentenceSegmenter* self, const char* input_data, size_t input_len); + + icu4x::capi::SentenceBreakIteratorUtf16* icu4x_SentenceSegmenter_segment_utf16_mv1(const icu4x::capi::SentenceSegmenter* self, const char16_t* input_data, size_t input_len); + + icu4x::capi::SentenceBreakIteratorLatin1* icu4x_SentenceSegmenter_segment_latin1_mv1(const icu4x::capi::SentenceSegmenter* self, const uint8_t* input_data, size_t input_len); + + + void icu4x_SentenceSegmenter_destroy_mv1(SentenceSegmenter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError> icu4x::SentenceSegmenter::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_SentenceSegmenter_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::SentenceSegmenter>>(std::unique_ptr<icu4x::SentenceSegmenter>(icu4x::SentenceSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::SentenceSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf8> icu4x::SentenceSegmenter::segment(std::string_view input) const { + auto result = icu4x::capi::icu4x_SentenceSegmenter_segment_utf8_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::SentenceBreakIteratorUtf8>(icu4x::SentenceBreakIteratorUtf8::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::SentenceBreakIteratorUtf16> icu4x::SentenceSegmenter::segment16(std::u16string_view input) const { + auto result = icu4x::capi::icu4x_SentenceSegmenter_segment_utf16_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::SentenceBreakIteratorUtf16>(icu4x::SentenceBreakIteratorUtf16::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::SentenceBreakIteratorLatin1> icu4x::SentenceSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { + auto result = icu4x::capi::icu4x_SentenceSegmenter_segment_latin1_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::SentenceBreakIteratorLatin1>(icu4x::SentenceBreakIteratorLatin1::FromFFI(result)); +} + +inline const icu4x::capi::SentenceSegmenter* icu4x::SentenceSegmenter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::SentenceSegmenter*>(this); +} + +inline icu4x::capi::SentenceSegmenter* icu4x::SentenceSegmenter::AsFFI() { + return reinterpret_cast<icu4x::capi::SentenceSegmenter*>(this); +} + +inline const icu4x::SentenceSegmenter* icu4x::SentenceSegmenter::FromFFI(const icu4x::capi::SentenceSegmenter* ptr) { + return reinterpret_cast<const icu4x::SentenceSegmenter*>(ptr); +} + +inline icu4x::SentenceSegmenter* icu4x::SentenceSegmenter::FromFFI(icu4x::capi::SentenceSegmenter* ptr) { + return reinterpret_cast<icu4x::SentenceSegmenter*>(ptr); +} + +inline void icu4x::SentenceSegmenter::operator delete(void* ptr) { + icu4x::capi::icu4x_SentenceSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::SentenceSegmenter*>(ptr)); +} + + +#endif // icu4x_SentenceSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Time.d.hpp b/ffi/capi/bindings/cpp/icu4x/Time.d.hpp new file mode 100644 index 00000000000..aea1146c1a5 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Time.d.hpp @@ -0,0 +1,59 @@ +#ifndef icu4x_Time_D_HPP +#define icu4x_Time_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct Time; } +class Time; +class CalendarError; +class CalendarParseError; +} + + +namespace icu4x { +namespace capi { + struct Time; +} // namespace capi +} // namespace + +namespace icu4x { +class Time { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> create(uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); + + inline static diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError> from_string(std::string_view v); + + inline static diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> midnight(); + + inline uint8_t hour() const; + + inline uint8_t minute() const; + + inline uint8_t second() const; + + inline uint32_t nanosecond() const; + + inline const icu4x::capi::Time* AsFFI() const; + inline icu4x::capi::Time* AsFFI(); + inline static const icu4x::Time* FromFFI(const icu4x::capi::Time* ptr); + inline static icu4x::Time* FromFFI(icu4x::capi::Time* ptr); + inline static void operator delete(void* ptr); +private: + Time() = delete; + Time(const icu4x::Time&) = delete; + Time(icu4x::Time&&) noexcept = delete; + Time operator=(const icu4x::Time&) = delete; + Time operator=(icu4x::Time&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_Time_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/Time.hpp b/ffi/capi/bindings/cpp/icu4x/Time.hpp new file mode 100644 index 00000000000..423005b3a5c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/Time.hpp @@ -0,0 +1,105 @@ +#ifndef icu4x_Time_HPP +#define icu4x_Time_HPP + +#include "Time.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CalendarError.hpp" +#include "CalendarParseError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_Time_create_mv1_result {union {icu4x::capi::Time* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Time_create_mv1_result; + icu4x_Time_create_mv1_result icu4x_Time_create_mv1(uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond); + + typedef struct icu4x_Time_from_string_mv1_result {union {icu4x::capi::Time* ok; icu4x::capi::CalendarParseError err;}; bool is_ok;} icu4x_Time_from_string_mv1_result; + icu4x_Time_from_string_mv1_result icu4x_Time_from_string_mv1(const char* v_data, size_t v_len); + + typedef struct icu4x_Time_midnight_mv1_result {union {icu4x::capi::Time* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Time_midnight_mv1_result; + icu4x_Time_midnight_mv1_result icu4x_Time_midnight_mv1(void); + + uint8_t icu4x_Time_hour_mv1(const icu4x::capi::Time* self); + + uint8_t icu4x_Time_minute_mv1(const icu4x::capi::Time* self); + + uint8_t icu4x_Time_second_mv1(const icu4x::capi::Time* self); + + uint32_t icu4x_Time_nanosecond_mv1(const icu4x::capi::Time* self); + + + void icu4x_Time_destroy_mv1(Time* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> icu4x::Time::create(uint8_t hour, uint8_t minute, uint8_t second, uint32_t nanosecond) { + auto result = icu4x::capi::icu4x_Time_create_mv1(hour, + minute, + second, + nanosecond); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Time>>(std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError> icu4x::Time::from_string(std::string_view v) { + auto result = icu4x::capi::icu4x_Time_from_string_mv1(v.data(), + v.size()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError>(diplomat::Ok<std::unique_ptr<icu4x::Time>>(std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarParseError>(diplomat::Err<icu4x::CalendarParseError>(icu4x::CalendarParseError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError> icu4x::Time::midnight() { + auto result = icu4x::capi::icu4x_Time_midnight_mv1(); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Time>>(std::unique_ptr<icu4x::Time>(icu4x::Time::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Time>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err))); +} + +inline uint8_t icu4x::Time::hour() const { + auto result = icu4x::capi::icu4x_Time_hour_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::Time::minute() const { + auto result = icu4x::capi::icu4x_Time_minute_mv1(this->AsFFI()); + return result; +} + +inline uint8_t icu4x::Time::second() const { + auto result = icu4x::capi::icu4x_Time_second_mv1(this->AsFFI()); + return result; +} + +inline uint32_t icu4x::Time::nanosecond() const { + auto result = icu4x::capi::icu4x_Time_nanosecond_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::Time* icu4x::Time::AsFFI() const { + return reinterpret_cast<const icu4x::capi::Time*>(this); +} + +inline icu4x::capi::Time* icu4x::Time::AsFFI() { + return reinterpret_cast<icu4x::capi::Time*>(this); +} + +inline const icu4x::Time* icu4x::Time::FromFFI(const icu4x::capi::Time* ptr) { + return reinterpret_cast<const icu4x::Time*>(ptr); +} + +inline icu4x::Time* icu4x::Time::FromFFI(icu4x::capi::Time* ptr) { + return reinterpret_cast<icu4x::Time*>(ptr); +} + +inline void icu4x::Time::operator delete(void* ptr) { + icu4x::capi::icu4x_Time_destroy_mv1(reinterpret_cast<icu4x::capi::Time*>(ptr)); +} + + +#endif // icu4x_Time_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/TimeFormatter.d.hpp new file mode 100644 index 00000000000..c400dea94d6 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeFormatter.d.hpp @@ -0,0 +1,63 @@ +#ifndef icu4x_TimeFormatter_D_HPP +#define icu4x_TimeFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct DateTime; } +class DateTime; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct Time; } +class Time; +namespace capi { struct TimeFormatter; } +class TimeFormatter; +class Error; +class TimeLength; +} + + +namespace icu4x { +namespace capi { + struct TimeFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class TimeFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::TimeFormatter>, icu4x::Error> create_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::TimeLength length); + + inline std::string format_time(const icu4x::Time& value) const; + + inline std::string format_datetime(const icu4x::DateTime& value) const; + + inline std::string format_iso_datetime(const icu4x::IsoDateTime& value) const; + + inline const icu4x::capi::TimeFormatter* AsFFI() const; + inline icu4x::capi::TimeFormatter* AsFFI(); + inline static const icu4x::TimeFormatter* FromFFI(const icu4x::capi::TimeFormatter* ptr); + inline static icu4x::TimeFormatter* FromFFI(icu4x::capi::TimeFormatter* ptr); + inline static void operator delete(void* ptr); +private: + TimeFormatter() = delete; + TimeFormatter(const icu4x::TimeFormatter&) = delete; + TimeFormatter(icu4x::TimeFormatter&&) noexcept = delete; + TimeFormatter operator=(const icu4x::TimeFormatter&) = delete; + TimeFormatter operator=(icu4x::TimeFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_TimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/TimeFormatter.hpp new file mode 100644 index 00000000000..038c15dbd19 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeFormatter.hpp @@ -0,0 +1,97 @@ +#ifndef icu4x_TimeFormatter_HPP +#define icu4x_TimeFormatter_HPP + +#include "TimeFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataProvider.hpp" +#include "DateTime.hpp" +#include "Error.hpp" +#include "IsoDateTime.hpp" +#include "Locale.hpp" +#include "Time.hpp" +#include "TimeLength.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_TimeFormatter_create_with_length_mv1_result {union {icu4x::capi::TimeFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeFormatter_create_with_length_mv1_result; + icu4x_TimeFormatter_create_with_length_mv1_result icu4x_TimeFormatter_create_with_length_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::TimeLength length); + + void icu4x_TimeFormatter_format_time_mv1(const icu4x::capi::TimeFormatter* self, const icu4x::capi::Time* value, diplomat::capi::DiplomatWrite* write); + + void icu4x_TimeFormatter_format_datetime_mv1(const icu4x::capi::TimeFormatter* self, const icu4x::capi::DateTime* value, diplomat::capi::DiplomatWrite* write); + + void icu4x_TimeFormatter_format_iso_datetime_mv1(const icu4x::capi::TimeFormatter* self, const icu4x::capi::IsoDateTime* value, diplomat::capi::DiplomatWrite* write); + + + void icu4x_TimeFormatter_destroy_mv1(TimeFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::TimeFormatter>, icu4x::Error> icu4x::TimeFormatter::create_with_length(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::TimeLength length) { + auto result = icu4x::capi::icu4x_TimeFormatter_create_with_length_mv1(provider.AsFFI(), + locale.AsFFI(), + length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TimeFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::TimeFormatter>>(std::unique_ptr<icu4x::TimeFormatter>(icu4x::TimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TimeFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline std::string icu4x::TimeFormatter::format_time(const icu4x::Time& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_TimeFormatter_format_time_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline std::string icu4x::TimeFormatter::format_datetime(const icu4x::DateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_TimeFormatter_format_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline std::string icu4x::TimeFormatter::format_iso_datetime(const icu4x::IsoDateTime& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_TimeFormatter_format_iso_datetime_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline const icu4x::capi::TimeFormatter* icu4x::TimeFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::TimeFormatter*>(this); +} + +inline icu4x::capi::TimeFormatter* icu4x::TimeFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::TimeFormatter*>(this); +} + +inline const icu4x::TimeFormatter* icu4x::TimeFormatter::FromFFI(const icu4x::capi::TimeFormatter* ptr) { + return reinterpret_cast<const icu4x::TimeFormatter*>(ptr); +} + +inline icu4x::TimeFormatter* icu4x::TimeFormatter::FromFFI(icu4x::capi::TimeFormatter* ptr) { + return reinterpret_cast<icu4x::TimeFormatter*>(ptr); +} + +inline void icu4x::TimeFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_TimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::TimeFormatter*>(ptr)); +} + + +#endif // icu4x_TimeFormatter_HPP diff --git a/ffi/capi/bindings/cpp/TimeLength.d.hpp b/ffi/capi/bindings/cpp/icu4x/TimeLength.d.hpp similarity index 69% rename from ffi/capi/bindings/cpp/TimeLength.d.hpp rename to ffi/capi/bindings/cpp/icu4x/TimeLength.d.hpp index 9325ff8843a..6136848150e 100644 --- a/ffi/capi/bindings/cpp/TimeLength.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/TimeLength.d.hpp @@ -1,5 +1,5 @@ -#ifndef TimeLength_D_HPP -#define TimeLength_D_HPP +#ifndef icu4x_TimeLength_D_HPP +#define icu4x_TimeLength_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum TimeLength { TimeLength_Full = 0, @@ -21,6 +21,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class TimeLength { public: enum Value { @@ -37,11 +38,11 @@ class TimeLength { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::TimeLength AsFFI() const; - inline static TimeLength FromFFI(diplomat::capi::TimeLength c_enum); + inline icu4x::capi::TimeLength AsFFI() const; + inline static icu4x::TimeLength FromFFI(icu4x::capi::TimeLength c_enum); private: Value value; }; - -#endif // TimeLength_D_HPP +} // namespace +#endif // icu4x_TimeLength_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeLength.hpp b/ffi/capi/bindings/cpp/icu4x/TimeLength.hpp new file mode 100644 index 00000000000..f1635eb7c7f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeLength.hpp @@ -0,0 +1,39 @@ +#ifndef icu4x_TimeLength_HPP +#define icu4x_TimeLength_HPP + +#include "TimeLength.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::TimeLength icu4x::TimeLength::AsFFI() const { + return static_cast<icu4x::capi::TimeLength>(value); +} + +inline icu4x::TimeLength icu4x::TimeLength::FromFFI(icu4x::capi::TimeLength c_enum) { + switch (c_enum) { + case icu4x::capi::TimeLength_Full: + case icu4x::capi::TimeLength_Long: + case icu4x::capi::TimeLength_Medium: + case icu4x::capi::TimeLength_Short: + return static_cast<icu4x::TimeLength::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_TimeLength_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.d.hpp new file mode 100644 index 00000000000..2f705bd9bf7 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.d.hpp @@ -0,0 +1,73 @@ +#ifndef icu4x_TimeZoneFormatter_D_HPP +#define icu4x_TimeZoneFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CustomTimeZone; } +class CustomTimeZone; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct TimeZoneFormatter; } +class TimeZoneFormatter; +struct IsoTimeZoneOptions; +class Error; +} + + +namespace icu4x { +namespace capi { + struct TimeZoneFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class TimeZoneFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error> create_with_localized_gmt_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error> create_with_iso_8601_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::IsoTimeZoneOptions options); + + inline diplomat::result<std::monostate, icu4x::Error> load_generic_non_location_long(const icu4x::DataProvider& provider); + + inline diplomat::result<std::monostate, icu4x::Error> load_generic_non_location_short(const icu4x::DataProvider& provider); + + inline diplomat::result<std::monostate, icu4x::Error> load_specific_non_location_long(const icu4x::DataProvider& provider); + + inline diplomat::result<std::monostate, icu4x::Error> load_specific_non_location_short(const icu4x::DataProvider& provider); + + inline diplomat::result<std::monostate, icu4x::Error> load_generic_location_format(const icu4x::DataProvider& provider); + + inline diplomat::result<std::monostate, icu4x::Error> include_localized_gmt_format(); + + inline diplomat::result<std::monostate, icu4x::Error> load_iso_8601_format(icu4x::IsoTimeZoneOptions options); + + inline std::string format_custom_time_zone(const icu4x::CustomTimeZone& value) const; + + inline diplomat::result<std::string, icu4x::Error> format_custom_time_zone_no_fallback(const icu4x::CustomTimeZone& value) const; + + inline const icu4x::capi::TimeZoneFormatter* AsFFI() const; + inline icu4x::capi::TimeZoneFormatter* AsFFI(); + inline static const icu4x::TimeZoneFormatter* FromFFI(const icu4x::capi::TimeZoneFormatter* ptr); + inline static icu4x::TimeZoneFormatter* FromFFI(icu4x::capi::TimeZoneFormatter* ptr); + inline static void operator delete(void* ptr); +private: + TimeZoneFormatter() = delete; + TimeZoneFormatter(const icu4x::TimeZoneFormatter&) = delete; + TimeZoneFormatter(icu4x::TimeZoneFormatter&&) noexcept = delete; + TimeZoneFormatter operator=(const icu4x::TimeZoneFormatter&) = delete; + TimeZoneFormatter operator=(icu4x::TimeZoneFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_TimeZoneFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.hpp new file mode 100644 index 00000000000..733e9e2a6ed --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneFormatter.hpp @@ -0,0 +1,156 @@ +#ifndef icu4x_TimeZoneFormatter_HPP +#define icu4x_TimeZoneFormatter_HPP + +#include "TimeZoneFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CustomTimeZone.hpp" +#include "DataProvider.hpp" +#include "Error.hpp" +#include "IsoTimeZoneOptions.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1_result {union {icu4x::capi::TimeZoneFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1_result; + icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1_result icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1_result {union {icu4x::capi::TimeZoneFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1_result; + icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1_result icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::IsoTimeZoneOptions options); + + typedef struct icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1_result; + icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1_result icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1(icu4x::capi::TimeZoneFormatter* self, const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1_result; + icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1_result icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1(icu4x::capi::TimeZoneFormatter* self, const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1_result; + icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1_result icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1(icu4x::capi::TimeZoneFormatter* self, const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1_result; + icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1_result icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1(icu4x::capi::TimeZoneFormatter* self, const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_TimeZoneFormatter_load_generic_location_format_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_generic_location_format_mv1_result; + icu4x_TimeZoneFormatter_load_generic_location_format_mv1_result icu4x_TimeZoneFormatter_load_generic_location_format_mv1(icu4x::capi::TimeZoneFormatter* self, const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1_result; + icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1_result icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1(icu4x::capi::TimeZoneFormatter* self); + + typedef struct icu4x_TimeZoneFormatter_load_iso_8601_format_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_load_iso_8601_format_mv1_result; + icu4x_TimeZoneFormatter_load_iso_8601_format_mv1_result icu4x_TimeZoneFormatter_load_iso_8601_format_mv1(icu4x::capi::TimeZoneFormatter* self, icu4x::capi::IsoTimeZoneOptions options); + + void icu4x_TimeZoneFormatter_format_custom_time_zone_mv1(const icu4x::capi::TimeZoneFormatter* self, const icu4x::capi::CustomTimeZone* value, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1_result; + icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1_result icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1(const icu4x::capi::TimeZoneFormatter* self, const icu4x::capi::CustomTimeZone* value, diplomat::capi::DiplomatWrite* write); + + + void icu4x_TimeZoneFormatter_destroy_mv1(TimeZoneFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error> icu4x::TimeZoneFormatter::create_with_localized_gmt_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_create_with_localized_gmt_fallback_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::TimeZoneFormatter>>(std::unique_ptr<icu4x::TimeZoneFormatter>(icu4x::TimeZoneFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error> icu4x::TimeZoneFormatter::create_with_iso_8601_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::IsoTimeZoneOptions options) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_create_with_iso_8601_fallback_mv1(provider.AsFFI(), + locale.AsFFI(), + options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::TimeZoneFormatter>>(std::unique_ptr<icu4x::TimeZoneFormatter>(icu4x::TimeZoneFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TimeZoneFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::Error> icu4x::TimeZoneFormatter::load_generic_non_location_long(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_load_generic_non_location_long_mv1(this->AsFFI(), + provider.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::Error> icu4x::TimeZoneFormatter::load_generic_non_location_short(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_load_generic_non_location_short_mv1(this->AsFFI(), + provider.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::Error> icu4x::TimeZoneFormatter::load_specific_non_location_long(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_load_specific_non_location_long_mv1(this->AsFFI(), + provider.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::Error> icu4x::TimeZoneFormatter::load_specific_non_location_short(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_load_specific_non_location_short_mv1(this->AsFFI(), + provider.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::Error> icu4x::TimeZoneFormatter::load_generic_location_format(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_load_generic_location_format_mv1(this->AsFFI(), + provider.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::Error> icu4x::TimeZoneFormatter::include_localized_gmt_format() { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_include_localized_gmt_format_mv1(this->AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::monostate, icu4x::Error> icu4x::TimeZoneFormatter::load_iso_8601_format(icu4x::IsoTimeZoneOptions options) { + auto result = icu4x::capi::icu4x_TimeZoneFormatter_load_iso_8601_format_mv1(this->AsFFI(), + options.AsFFI()); + return result.is_ok ? diplomat::result<std::monostate, icu4x::Error>(diplomat::Ok<std::monostate>()) : diplomat::result<std::monostate, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline std::string icu4x::TimeZoneFormatter::format_custom_time_zone(const icu4x::CustomTimeZone& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_TimeZoneFormatter_format_custom_time_zone_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return output; +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::TimeZoneFormatter::format_custom_time_zone_no_fallback(const icu4x::CustomTimeZone& value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_TimeZoneFormatter_format_custom_time_zone_no_fallback_mv1(this->AsFFI(), + value.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline const icu4x::capi::TimeZoneFormatter* icu4x::TimeZoneFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::TimeZoneFormatter*>(this); +} + +inline icu4x::capi::TimeZoneFormatter* icu4x::TimeZoneFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::TimeZoneFormatter*>(this); +} + +inline const icu4x::TimeZoneFormatter* icu4x::TimeZoneFormatter::FromFFI(const icu4x::capi::TimeZoneFormatter* ptr) { + return reinterpret_cast<const icu4x::TimeZoneFormatter*>(ptr); +} + +inline icu4x::TimeZoneFormatter* icu4x::TimeZoneFormatter::FromFFI(icu4x::capi::TimeZoneFormatter* ptr) { + return reinterpret_cast<icu4x::TimeZoneFormatter*>(ptr); +} + +inline void icu4x::TimeZoneFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_TimeZoneFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneFormatter*>(ptr)); +} + + +#endif // icu4x_TimeZoneFormatter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.d.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.d.hpp new file mode 100644 index 00000000000..5e79bfd417f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.d.hpp @@ -0,0 +1,57 @@ +#ifndef icu4x_TimeZoneIdMapper_D_HPP +#define icu4x_TimeZoneIdMapper_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct TimeZoneIdMapper; } +class TimeZoneIdMapper; +struct TimeZoneInvalidIdError; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct TimeZoneIdMapper; +} // namespace capi +} // namespace + +namespace icu4x { +class TimeZoneIdMapper { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapper>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline diplomat::result<std::string, icu4x::TimeZoneInvalidIdError> iana_to_bcp47(std::string_view value) const; + + inline diplomat::result<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>, diplomat::Utf8Error> normalize_iana(std::string_view value) const; + + inline diplomat::result<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>, diplomat::Utf8Error> canonicalize_iana(std::string_view value) const; + + inline diplomat::result<std::string, icu4x::TimeZoneInvalidIdError> find_canonical_iana_from_bcp47(std::string_view value) const; + + inline const icu4x::capi::TimeZoneIdMapper* AsFFI() const; + inline icu4x::capi::TimeZoneIdMapper* AsFFI(); + inline static const icu4x::TimeZoneIdMapper* FromFFI(const icu4x::capi::TimeZoneIdMapper* ptr); + inline static icu4x::TimeZoneIdMapper* FromFFI(icu4x::capi::TimeZoneIdMapper* ptr); + inline static void operator delete(void* ptr); +private: + TimeZoneIdMapper() = delete; + TimeZoneIdMapper(const icu4x::TimeZoneIdMapper&) = delete; + TimeZoneIdMapper(icu4x::TimeZoneIdMapper&&) noexcept = delete; + TimeZoneIdMapper operator=(const icu4x::TimeZoneIdMapper&) = delete; + TimeZoneIdMapper operator=(icu4x::TimeZoneIdMapper&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_TimeZoneIdMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.hpp new file mode 100644 index 00000000000..2f41388ba29 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapper.hpp @@ -0,0 +1,116 @@ +#ifndef icu4x_TimeZoneIdMapper_HPP +#define icu4x_TimeZoneIdMapper_HPP + +#include "TimeZoneIdMapper.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "TimeZoneInvalidIdError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_TimeZoneIdMapper_create_mv1_result {union {icu4x::capi::TimeZoneIdMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_TimeZoneIdMapper_create_mv1_result; + icu4x_TimeZoneIdMapper_create_mv1_result icu4x_TimeZoneIdMapper_create_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1_result; + icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1_result icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1(const icu4x::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_TimeZoneIdMapper_normalize_iana_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_normalize_iana_mv1_result; + icu4x_TimeZoneIdMapper_normalize_iana_mv1_result icu4x_TimeZoneIdMapper_normalize_iana_mv1(const icu4x::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_TimeZoneIdMapper_canonicalize_iana_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_canonicalize_iana_mv1_result; + icu4x_TimeZoneIdMapper_canonicalize_iana_mv1_result icu4x_TimeZoneIdMapper_canonicalize_iana_mv1(const icu4x::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1_result; + icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1_result icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1(const icu4x::capi::TimeZoneIdMapper* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); + + + void icu4x_TimeZoneIdMapper_destroy_mv1(TimeZoneIdMapper* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapper>, icu4x::DataError> icu4x::TimeZoneIdMapper::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TimeZoneIdMapper_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::TimeZoneIdMapper>>(std::unique_ptr<icu4x::TimeZoneIdMapper>(icu4x::TimeZoneIdMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::TimeZoneInvalidIdError> icu4x::TimeZoneIdMapper::iana_to_bcp47(std::string_view value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_TimeZoneIdMapper_iana_to_bcp47_mv1(this->AsFFI(), + value.data(), + value.size(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {})); +} + +inline diplomat::result<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>, diplomat::Utf8Error> icu4x::TimeZoneIdMapper::normalize_iana(std::string_view value) const { + if (!diplomat::capi::diplomat_is_str(value.data(), value.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_TimeZoneIdMapper_normalize_iana_mv1(this->AsFFI(), + value.data(), + value.size(), + &write); + return diplomat::Ok<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>>(result.is_ok ? diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {}))); +} + +inline diplomat::result<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>, diplomat::Utf8Error> icu4x::TimeZoneIdMapper::canonicalize_iana(std::string_view value) const { + if (!diplomat::capi::diplomat_is_str(value.data(), value.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_TimeZoneIdMapper_canonicalize_iana_mv1(this->AsFFI(), + value.data(), + value.size(), + &write); + return diplomat::Ok<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>>(result.is_ok ? diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {}))); +} + +inline diplomat::result<std::string, icu4x::TimeZoneInvalidIdError> icu4x::TimeZoneIdMapper::find_canonical_iana_from_bcp47(std::string_view value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_TimeZoneIdMapper_find_canonical_iana_from_bcp47_mv1(this->AsFFI(), + value.data(), + value.size(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {})); +} + +inline const icu4x::capi::TimeZoneIdMapper* icu4x::TimeZoneIdMapper::AsFFI() const { + return reinterpret_cast<const icu4x::capi::TimeZoneIdMapper*>(this); +} + +inline icu4x::capi::TimeZoneIdMapper* icu4x::TimeZoneIdMapper::AsFFI() { + return reinterpret_cast<icu4x::capi::TimeZoneIdMapper*>(this); +} + +inline const icu4x::TimeZoneIdMapper* icu4x::TimeZoneIdMapper::FromFFI(const icu4x::capi::TimeZoneIdMapper* ptr) { + return reinterpret_cast<const icu4x::TimeZoneIdMapper*>(ptr); +} + +inline icu4x::TimeZoneIdMapper* icu4x::TimeZoneIdMapper::FromFFI(icu4x::capi::TimeZoneIdMapper* ptr) { + return reinterpret_cast<icu4x::TimeZoneIdMapper*>(ptr); +} + +inline void icu4x::TimeZoneIdMapper::operator delete(void* ptr) { + icu4x::capi::icu4x_TimeZoneIdMapper_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneIdMapper*>(ptr)); +} + + +#endif // icu4x_TimeZoneIdMapper_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.d.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.d.hpp new file mode 100644 index 00000000000..91641e83df0 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.d.hpp @@ -0,0 +1,53 @@ +#ifndef icu4x_TimeZoneIdMapperWithFastCanonicalization_D_HPP +#define icu4x_TimeZoneIdMapperWithFastCanonicalization_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct TimeZoneIdMapperWithFastCanonicalization; } +class TimeZoneIdMapperWithFastCanonicalization; +struct TimeZoneInvalidIdError; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct TimeZoneIdMapperWithFastCanonicalization; +} // namespace capi +} // namespace + +namespace icu4x { +class TimeZoneIdMapperWithFastCanonicalization { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapperWithFastCanonicalization>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline diplomat::result<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>, diplomat::Utf8Error> canonicalize_iana(std::string_view value) const; + + inline diplomat::result<std::string, icu4x::TimeZoneInvalidIdError> canonical_iana_from_bcp47(std::string_view value) const; + + inline const icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* AsFFI() const; + inline icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* AsFFI(); + inline static const icu4x::TimeZoneIdMapperWithFastCanonicalization* FromFFI(const icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* ptr); + inline static icu4x::TimeZoneIdMapperWithFastCanonicalization* FromFFI(icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* ptr); + inline static void operator delete(void* ptr); +private: + TimeZoneIdMapperWithFastCanonicalization() = delete; + TimeZoneIdMapperWithFastCanonicalization(const icu4x::TimeZoneIdMapperWithFastCanonicalization&) = delete; + TimeZoneIdMapperWithFastCanonicalization(icu4x::TimeZoneIdMapperWithFastCanonicalization&&) noexcept = delete; + TimeZoneIdMapperWithFastCanonicalization operator=(const icu4x::TimeZoneIdMapperWithFastCanonicalization&) = delete; + TimeZoneIdMapperWithFastCanonicalization operator=(icu4x::TimeZoneIdMapperWithFastCanonicalization&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_TimeZoneIdMapperWithFastCanonicalization_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.hpp new file mode 100644 index 00000000000..5df2f98400e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneIdMapperWithFastCanonicalization.hpp @@ -0,0 +1,87 @@ +#ifndef icu4x_TimeZoneIdMapperWithFastCanonicalization_HPP +#define icu4x_TimeZoneIdMapperWithFastCanonicalization_HPP + +#include "TimeZoneIdMapperWithFastCanonicalization.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "TimeZoneInvalidIdError.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1_result {union {icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1_result; + icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1_result icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1_result; + icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1_result icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1(const icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1_result { bool is_ok;} icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1_result; + icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1_result icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1(const icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* self, const char* value_data, size_t value_len, diplomat::capi::DiplomatWrite* write); + + + void icu4x_TimeZoneIdMapperWithFastCanonicalization_destroy_mv1(TimeZoneIdMapperWithFastCanonicalization* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapperWithFastCanonicalization>, icu4x::DataError> icu4x::TimeZoneIdMapperWithFastCanonicalization::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapperWithFastCanonicalization>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::TimeZoneIdMapperWithFastCanonicalization>>(std::unique_ptr<icu4x::TimeZoneIdMapperWithFastCanonicalization>(icu4x::TimeZoneIdMapperWithFastCanonicalization::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TimeZoneIdMapperWithFastCanonicalization>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>, diplomat::Utf8Error> icu4x::TimeZoneIdMapperWithFastCanonicalization::canonicalize_iana(std::string_view value) const { + if (!diplomat::capi::diplomat_is_str(value.data(), value.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_canonicalize_iana_mv1(this->AsFFI(), + value.data(), + value.size(), + &write); + return diplomat::Ok<diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>>(result.is_ok ? diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {}))); +} + +inline diplomat::result<std::string, icu4x::TimeZoneInvalidIdError> icu4x::TimeZoneIdMapperWithFastCanonicalization::canonical_iana_from_bcp47(std::string_view value) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_canonical_iana_from_bcp47_mv1(this->AsFFI(), + value.data(), + value.size(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::TimeZoneInvalidIdError>(diplomat::Err<icu4x::TimeZoneInvalidIdError>(icu4x::TimeZoneInvalidIdError {})); +} + +inline const icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* icu4x::TimeZoneIdMapperWithFastCanonicalization::AsFFI() const { + return reinterpret_cast<const icu4x::capi::TimeZoneIdMapperWithFastCanonicalization*>(this); +} + +inline icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* icu4x::TimeZoneIdMapperWithFastCanonicalization::AsFFI() { + return reinterpret_cast<icu4x::capi::TimeZoneIdMapperWithFastCanonicalization*>(this); +} + +inline const icu4x::TimeZoneIdMapperWithFastCanonicalization* icu4x::TimeZoneIdMapperWithFastCanonicalization::FromFFI(const icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* ptr) { + return reinterpret_cast<const icu4x::TimeZoneIdMapperWithFastCanonicalization*>(ptr); +} + +inline icu4x::TimeZoneIdMapperWithFastCanonicalization* icu4x::TimeZoneIdMapperWithFastCanonicalization::FromFFI(icu4x::capi::TimeZoneIdMapperWithFastCanonicalization* ptr) { + return reinterpret_cast<icu4x::TimeZoneIdMapperWithFastCanonicalization*>(ptr); +} + +inline void icu4x::TimeZoneIdMapperWithFastCanonicalization::operator delete(void* ptr) { + icu4x::capi::icu4x_TimeZoneIdMapperWithFastCanonicalization_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneIdMapperWithFastCanonicalization*>(ptr)); +} + + +#endif // icu4x_TimeZoneIdMapperWithFastCanonicalization_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneInvalidIdError.d.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidIdError.d.hpp similarity index 50% rename from ffi/capi/bindings/cpp/TimeZoneInvalidIdError.d.hpp rename to ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidIdError.d.hpp index 62d2fc832af..c81d5f930dd 100644 --- a/ffi/capi/bindings/cpp/TimeZoneInvalidIdError.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidIdError.d.hpp @@ -1,5 +1,5 @@ -#ifndef TimeZoneInvalidIdError_D_HPP -#define TimeZoneInvalidIdError_D_HPP +#ifndef icu4x_TimeZoneInvalidIdError_D_HPP +#define icu4x_TimeZoneInvalidIdError_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,19 +7,20 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { } // namespace capi } // namespace +namespace icu4x { struct TimeZoneInvalidIdError { }; - -#endif // TimeZoneInvalidIdError_D_HPP +} // namespace +#endif // icu4x_TimeZoneInvalidIdError_D_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneInvalidIdError.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidIdError.hpp similarity index 59% rename from ffi/capi/bindings/cpp/TimeZoneInvalidIdError.hpp rename to ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidIdError.hpp index f932d142488..31e4a24e629 100644 --- a/ffi/capi/bindings/cpp/TimeZoneInvalidIdError.hpp +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidIdError.hpp @@ -1,5 +1,5 @@ -#ifndef TimeZoneInvalidIdError_HPP -#define TimeZoneInvalidIdError_HPP +#ifndef icu4x_TimeZoneInvalidIdError_HPP +#define icu4x_TimeZoneInvalidIdError_HPP #include "TimeZoneInvalidIdError.d.hpp" @@ -9,10 +9,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { extern "C" { @@ -24,4 +24,4 @@ namespace capi { -#endif // TimeZoneInvalidIdError_HPP +#endif // icu4x_TimeZoneInvalidIdError_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.d.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.d.hpp new file mode 100644 index 00000000000..bc2854dcc8e --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.d.hpp @@ -0,0 +1,26 @@ +#ifndef icu4x_TimeZoneInvalidOffsetError_D_HPP +#define icu4x_TimeZoneInvalidOffsetError_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + +} // namespace capi +} // namespace + + +namespace icu4x { +struct TimeZoneInvalidOffsetError { + +}; + +} // namespace +#endif // icu4x_TimeZoneInvalidOffsetError_D_HPP diff --git a/ffi/capi/bindings/cpp/TimeZoneInvalidOffsetError.hpp b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.hpp similarity index 58% rename from ffi/capi/bindings/cpp/TimeZoneInvalidOffsetError.hpp rename to ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.hpp index d3d9cac5b4d..bb4d7fd36b1 100644 --- a/ffi/capi/bindings/cpp/TimeZoneInvalidOffsetError.hpp +++ b/ffi/capi/bindings/cpp/icu4x/TimeZoneInvalidOffsetError.hpp @@ -1,5 +1,5 @@ -#ifndef TimeZoneInvalidOffsetError_HPP -#define TimeZoneInvalidOffsetError_HPP +#ifndef icu4x_TimeZoneInvalidOffsetError_HPP +#define icu4x_TimeZoneInvalidOffsetError_HPP #include "TimeZoneInvalidOffsetError.d.hpp" @@ -9,10 +9,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { extern "C" { @@ -24,4 +24,4 @@ namespace capi { -#endif // TimeZoneInvalidOffsetError_HPP +#endif // icu4x_TimeZoneInvalidOffsetError_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.d.hpp b/ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.d.hpp new file mode 100644 index 00000000000..83498c4e0f5 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.d.hpp @@ -0,0 +1,53 @@ +#ifndef icu4x_TitlecaseMapper_D_HPP +#define icu4x_TitlecaseMapper_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct TitlecaseMapper; } +class TitlecaseMapper; +struct TitlecaseOptionsV1; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct TitlecaseMapper; +} // namespace capi +} // namespace + +namespace icu4x { +class TitlecaseMapper { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline diplomat::result<std::string, diplomat::Utf8Error> titlecase_segment_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const; + + inline const icu4x::capi::TitlecaseMapper* AsFFI() const; + inline icu4x::capi::TitlecaseMapper* AsFFI(); + inline static const icu4x::TitlecaseMapper* FromFFI(const icu4x::capi::TitlecaseMapper* ptr); + inline static icu4x::TitlecaseMapper* FromFFI(icu4x::capi::TitlecaseMapper* ptr); + inline static void operator delete(void* ptr); +private: + TitlecaseMapper() = delete; + TitlecaseMapper(const icu4x::TitlecaseMapper&) = delete; + TitlecaseMapper(icu4x::TitlecaseMapper&&) noexcept = delete; + TitlecaseMapper operator=(const icu4x::TitlecaseMapper&) = delete; + TitlecaseMapper operator=(icu4x::TitlecaseMapper&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_TitlecaseMapper_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.hpp b/ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.hpp new file mode 100644 index 00000000000..5b8f2b7a6ac --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TitlecaseMapper.hpp @@ -0,0 +1,76 @@ +#ifndef icu4x_TitlecaseMapper_HPP +#define icu4x_TitlecaseMapper_HPP + +#include "TitlecaseMapper.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" +#include "TitlecaseOptionsV1.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_TitlecaseMapper_create_mv1_result {union {icu4x::capi::TitlecaseMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_TitlecaseMapper_create_mv1_result; + icu4x_TitlecaseMapper_create_mv1_result icu4x_TitlecaseMapper_create_mv1(const icu4x::capi::DataProvider* provider); + + void icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(const icu4x::capi::TitlecaseMapper* self, const char* s_data, size_t s_len, const icu4x::capi::Locale* locale, icu4x::capi::TitlecaseOptionsV1 options, diplomat::capi::DiplomatWrite* write); + + + void icu4x_TitlecaseMapper_destroy_mv1(TitlecaseMapper* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError> icu4x::TitlecaseMapper::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_TitlecaseMapper_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::TitlecaseMapper>>(std::unique_ptr<icu4x::TitlecaseMapper>(icu4x::TitlecaseMapper::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::TitlecaseMapper>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::string, diplomat::Utf8Error> icu4x::TitlecaseMapper::titlecase_segment_v1(std::string_view s, const icu4x::Locale& locale, icu4x::TitlecaseOptionsV1 options) const { + if (!diplomat::capi::diplomat_is_str(s.data(), s.size())) { + return diplomat::Err<diplomat::Utf8Error>(diplomat::Utf8Error()); + } + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + icu4x::capi::icu4x_TitlecaseMapper_titlecase_segment_v1_mv1(this->AsFFI(), + s.data(), + s.size(), + locale.AsFFI(), + options.AsFFI(), + &write); + return diplomat::Ok<std::string>(std::move(output)); +} + +inline const icu4x::capi::TitlecaseMapper* icu4x::TitlecaseMapper::AsFFI() const { + return reinterpret_cast<const icu4x::capi::TitlecaseMapper*>(this); +} + +inline icu4x::capi::TitlecaseMapper* icu4x::TitlecaseMapper::AsFFI() { + return reinterpret_cast<icu4x::capi::TitlecaseMapper*>(this); +} + +inline const icu4x::TitlecaseMapper* icu4x::TitlecaseMapper::FromFFI(const icu4x::capi::TitlecaseMapper* ptr) { + return reinterpret_cast<const icu4x::TitlecaseMapper*>(ptr); +} + +inline icu4x::TitlecaseMapper* icu4x::TitlecaseMapper::FromFFI(icu4x::capi::TitlecaseMapper* ptr) { + return reinterpret_cast<icu4x::TitlecaseMapper*>(ptr); +} + +inline void icu4x::TitlecaseMapper::operator delete(void* ptr) { + icu4x::capi::icu4x_TitlecaseMapper_destroy_mv1(reinterpret_cast<icu4x::capi::TitlecaseMapper*>(ptr)); +} + + +#endif // icu4x_TitlecaseMapper_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.d.hpp b/ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.d.hpp new file mode 100644 index 00000000000..2f804aeae14 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.d.hpp @@ -0,0 +1,43 @@ +#ifndef icu4x_TitlecaseOptionsV1_D_HPP +#define icu4x_TitlecaseOptionsV1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "LeadingAdjustment.d.hpp" +#include "TrailingCase.d.hpp" + +namespace icu4x { +struct TitlecaseOptionsV1; +class LeadingAdjustment; +class TrailingCase; +} + + +namespace icu4x { +namespace capi { + struct TitlecaseOptionsV1 { + icu4x::capi::LeadingAdjustment leading_adjustment; + icu4x::capi::TrailingCase trailing_case; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct TitlecaseOptionsV1 { + icu4x::LeadingAdjustment leading_adjustment; + icu4x::TrailingCase trailing_case; + + inline static icu4x::TitlecaseOptionsV1 default_options(); + + inline icu4x::capi::TitlecaseOptionsV1 AsFFI() const; + inline static icu4x::TitlecaseOptionsV1 FromFFI(icu4x::capi::TitlecaseOptionsV1 c_struct); +}; + +} // namespace +#endif // icu4x_TitlecaseOptionsV1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.hpp b/ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.hpp new file mode 100644 index 00000000000..4b7dd5d625b --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TitlecaseOptionsV1.hpp @@ -0,0 +1,49 @@ +#ifndef icu4x_TitlecaseOptionsV1_HPP +#define icu4x_TitlecaseOptionsV1_HPP + +#include "TitlecaseOptionsV1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "LeadingAdjustment.hpp" +#include "TrailingCase.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + icu4x::capi::TitlecaseOptionsV1 icu4x_TitlecaseOptionsV1_default_mv1(void); + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::TitlecaseOptionsV1 icu4x::TitlecaseOptionsV1::default_options() { + auto result = icu4x::capi::icu4x_TitlecaseOptionsV1_default_mv1(); + return icu4x::TitlecaseOptionsV1::FromFFI(result); +} + + +inline icu4x::capi::TitlecaseOptionsV1 icu4x::TitlecaseOptionsV1::AsFFI() const { + return icu4x::capi::TitlecaseOptionsV1 { + /* .leading_adjustment = */ leading_adjustment.AsFFI(), + /* .trailing_case = */ trailing_case.AsFFI(), + }; +} + +inline icu4x::TitlecaseOptionsV1 icu4x::TitlecaseOptionsV1::FromFFI(icu4x::capi::TitlecaseOptionsV1 c_struct) { + return icu4x::TitlecaseOptionsV1 { + /* .leading_adjustment = */ icu4x::LeadingAdjustment::FromFFI(c_struct.leading_adjustment), + /* .trailing_case = */ icu4x::TrailingCase::FromFFI(c_struct.trailing_case), + }; +} + + +#endif // icu4x_TitlecaseOptionsV1_HPP diff --git a/ffi/capi/bindings/cpp/TrailingCase.d.hpp b/ffi/capi/bindings/cpp/icu4x/TrailingCase.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/TrailingCase.d.hpp rename to ffi/capi/bindings/cpp/icu4x/TrailingCase.d.hpp index ae79b889a7f..c5a5caac0fe 100644 --- a/ffi/capi/bindings/cpp/TrailingCase.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/TrailingCase.d.hpp @@ -1,5 +1,5 @@ -#ifndef TrailingCase_D_HPP -#define TrailingCase_D_HPP +#ifndef icu4x_TrailingCase_D_HPP +#define icu4x_TrailingCase_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum TrailingCase { TrailingCase_Lower = 0, @@ -19,6 +19,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class TrailingCase { public: enum Value { @@ -33,11 +34,11 @@ class TrailingCase { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::TrailingCase AsFFI() const; - inline static TrailingCase FromFFI(diplomat::capi::TrailingCase c_enum); + inline icu4x::capi::TrailingCase AsFFI() const; + inline static icu4x::TrailingCase FromFFI(icu4x::capi::TrailingCase c_enum); private: Value value; }; - -#endif // TrailingCase_D_HPP +} // namespace +#endif // icu4x_TrailingCase_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TrailingCase.hpp b/ffi/capi/bindings/cpp/icu4x/TrailingCase.hpp new file mode 100644 index 00000000000..eca0b37aaf4 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TrailingCase.hpp @@ -0,0 +1,37 @@ +#ifndef icu4x_TrailingCase_HPP +#define icu4x_TrailingCase_HPP + +#include "TrailingCase.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::TrailingCase icu4x::TrailingCase::AsFFI() const { + return static_cast<icu4x::capi::TrailingCase>(value); +} + +inline icu4x::TrailingCase icu4x::TrailingCase::FromFFI(icu4x::capi::TrailingCase c_enum) { + switch (c_enum) { + case icu4x::capi::TrailingCase_Lower: + case icu4x::capi::TrailingCase_Unchanged: + return static_cast<icu4x::TrailingCase::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_TrailingCase_HPP diff --git a/ffi/capi/bindings/cpp/TransformResult.d.hpp b/ffi/capi/bindings/cpp/icu4x/TransformResult.d.hpp similarity index 66% rename from ffi/capi/bindings/cpp/TransformResult.d.hpp rename to ffi/capi/bindings/cpp/icu4x/TransformResult.d.hpp index deaa4778122..7fd97bbe7a2 100644 --- a/ffi/capi/bindings/cpp/TransformResult.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/TransformResult.d.hpp @@ -1,5 +1,5 @@ -#ifndef TransformResult_D_HPP -#define TransformResult_D_HPP +#ifndef icu4x_TransformResult_D_HPP +#define icu4x_TransformResult_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum TransformResult { TransformResult_Modified = 0, @@ -19,6 +19,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class TransformResult { public: enum Value { @@ -33,11 +34,11 @@ class TransformResult { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::TransformResult AsFFI() const; - inline static TransformResult FromFFI(diplomat::capi::TransformResult c_enum); + inline icu4x::capi::TransformResult AsFFI() const; + inline static icu4x::TransformResult FromFFI(icu4x::capi::TransformResult c_enum); private: Value value; }; - -#endif // TransformResult_D_HPP +} // namespace +#endif // icu4x_TransformResult_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/TransformResult.hpp b/ffi/capi/bindings/cpp/icu4x/TransformResult.hpp new file mode 100644 index 00000000000..2fb98a94d15 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/TransformResult.hpp @@ -0,0 +1,37 @@ +#ifndef icu4x_TransformResult_HPP +#define icu4x_TransformResult_HPP + +#include "TransformResult.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::TransformResult icu4x::TransformResult::AsFFI() const { + return static_cast<icu4x::capi::TransformResult>(value); +} + +inline icu4x::TransformResult icu4x::TransformResult::FromFFI(icu4x::capi::TransformResult c_enum) { + switch (c_enum) { + case icu4x::capi::TransformResult_Modified: + case icu4x::capi::TransformResult_Unmodified: + return static_cast<icu4x::TransformResult::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_TransformResult_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/UnicodeSetData.d.hpp b/ffi/capi/bindings/cpp/icu4x/UnicodeSetData.d.hpp new file mode 100644 index 00000000000..02904ea9703 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/UnicodeSetData.d.hpp @@ -0,0 +1,64 @@ +#ifndef icu4x_UnicodeSetData_D_HPP +#define icu4x_UnicodeSetData_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct UnicodeSetData; } +class UnicodeSetData; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct UnicodeSetData; +} // namespace capi +} // namespace + +namespace icu4x { +class UnicodeSetData { +public: + + inline bool contains(std::string_view s) const; + + inline bool contains_char(char32_t cp) const; + + inline static diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> load_basic_emoji(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> load_exemplars_main(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> load_exemplars_auxiliary(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> load_exemplars_punctuation(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> load_exemplars_numbers(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> load_exemplars_index(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline const icu4x::capi::UnicodeSetData* AsFFI() const; + inline icu4x::capi::UnicodeSetData* AsFFI(); + inline static const icu4x::UnicodeSetData* FromFFI(const icu4x::capi::UnicodeSetData* ptr); + inline static icu4x::UnicodeSetData* FromFFI(icu4x::capi::UnicodeSetData* ptr); + inline static void operator delete(void* ptr); +private: + UnicodeSetData() = delete; + UnicodeSetData(const icu4x::UnicodeSetData&) = delete; + UnicodeSetData(icu4x::UnicodeSetData&&) noexcept = delete; + UnicodeSetData operator=(const icu4x::UnicodeSetData&) = delete; + UnicodeSetData operator=(icu4x::UnicodeSetData&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_UnicodeSetData_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/UnicodeSetData.hpp b/ffi/capi/bindings/cpp/icu4x/UnicodeSetData.hpp new file mode 100644 index 00000000000..a7264333cd4 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/UnicodeSetData.hpp @@ -0,0 +1,120 @@ +#ifndef icu4x_UnicodeSetData_HPP +#define icu4x_UnicodeSetData_HPP + +#include "UnicodeSetData.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "Locale.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + bool icu4x_UnicodeSetData_contains_mv1(const icu4x::capi::UnicodeSetData* self, const char* s_data, size_t s_len); + + bool icu4x_UnicodeSetData_contains_char_mv1(const icu4x::capi::UnicodeSetData* self, char32_t cp); + + typedef struct icu4x_UnicodeSetData_load_basic_emoji_mv1_result {union {icu4x::capi::UnicodeSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_basic_emoji_mv1_result; + icu4x_UnicodeSetData_load_basic_emoji_mv1_result icu4x_UnicodeSetData_load_basic_emoji_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_UnicodeSetData_load_exemplars_main_mv1_result {union {icu4x::capi::UnicodeSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_main_mv1_result; + icu4x_UnicodeSetData_load_exemplars_main_mv1_result icu4x_UnicodeSetData_load_exemplars_main_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1_result {union {icu4x::capi::UnicodeSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1_result; + icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1_result icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_UnicodeSetData_load_exemplars_punctuation_mv1_result {union {icu4x::capi::UnicodeSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_punctuation_mv1_result; + icu4x_UnicodeSetData_load_exemplars_punctuation_mv1_result icu4x_UnicodeSetData_load_exemplars_punctuation_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_UnicodeSetData_load_exemplars_numbers_mv1_result {union {icu4x::capi::UnicodeSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_numbers_mv1_result; + icu4x_UnicodeSetData_load_exemplars_numbers_mv1_result icu4x_UnicodeSetData_load_exemplars_numbers_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + typedef struct icu4x_UnicodeSetData_load_exemplars_index_mv1_result {union {icu4x::capi::UnicodeSetData* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnicodeSetData_load_exemplars_index_mv1_result; + icu4x_UnicodeSetData_load_exemplars_index_mv1_result icu4x_UnicodeSetData_load_exemplars_index_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + + void icu4x_UnicodeSetData_destroy_mv1(UnicodeSetData* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline bool icu4x::UnicodeSetData::contains(std::string_view s) const { + auto result = icu4x::capi::icu4x_UnicodeSetData_contains_mv1(this->AsFFI(), + s.data(), + s.size()); + return result; +} + +inline bool icu4x::UnicodeSetData::contains_char(char32_t cp) const { + auto result = icu4x::capi::icu4x_UnicodeSetData_contains_char_mv1(this->AsFFI(), + cp); + return result; +} + +inline diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> icu4x::UnicodeSetData::load_basic_emoji(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_UnicodeSetData_load_basic_emoji_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnicodeSetData>>(std::unique_ptr<icu4x::UnicodeSetData>(icu4x::UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> icu4x::UnicodeSetData::load_exemplars_main(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_UnicodeSetData_load_exemplars_main_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnicodeSetData>>(std::unique_ptr<icu4x::UnicodeSetData>(icu4x::UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> icu4x::UnicodeSetData::load_exemplars_auxiliary(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_UnicodeSetData_load_exemplars_auxiliary_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnicodeSetData>>(std::unique_ptr<icu4x::UnicodeSetData>(icu4x::UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> icu4x::UnicodeSetData::load_exemplars_punctuation(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_UnicodeSetData_load_exemplars_punctuation_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnicodeSetData>>(std::unique_ptr<icu4x::UnicodeSetData>(icu4x::UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> icu4x::UnicodeSetData::load_exemplars_numbers(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_UnicodeSetData_load_exemplars_numbers_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnicodeSetData>>(std::unique_ptr<icu4x::UnicodeSetData>(icu4x::UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError> icu4x::UnicodeSetData::load_exemplars_index(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_UnicodeSetData_load_exemplars_index_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnicodeSetData>>(std::unique_ptr<icu4x::UnicodeSetData>(icu4x::UnicodeSetData::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnicodeSetData>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline const icu4x::capi::UnicodeSetData* icu4x::UnicodeSetData::AsFFI() const { + return reinterpret_cast<const icu4x::capi::UnicodeSetData*>(this); +} + +inline icu4x::capi::UnicodeSetData* icu4x::UnicodeSetData::AsFFI() { + return reinterpret_cast<icu4x::capi::UnicodeSetData*>(this); +} + +inline const icu4x::UnicodeSetData* icu4x::UnicodeSetData::FromFFI(const icu4x::capi::UnicodeSetData* ptr) { + return reinterpret_cast<const icu4x::UnicodeSetData*>(ptr); +} + +inline icu4x::UnicodeSetData* icu4x::UnicodeSetData::FromFFI(icu4x::capi::UnicodeSetData* ptr) { + return reinterpret_cast<icu4x::UnicodeSetData*>(ptr); +} + +inline void icu4x::UnicodeSetData::operator delete(void* ptr) { + icu4x::capi::icu4x_UnicodeSetData_destroy_mv1(reinterpret_cast<icu4x::capi::UnicodeSetData*>(ptr)); +} + + +#endif // icu4x_UnicodeSetData_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/UnitsConverter.d.hpp b/ffi/capi/bindings/cpp/icu4x/UnitsConverter.d.hpp new file mode 100644 index 00000000000..4005a94bce6 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/UnitsConverter.d.hpp @@ -0,0 +1,47 @@ +#ifndef icu4x_UnitsConverter_D_HPP +#define icu4x_UnitsConverter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct UnitsConverter; } +class UnitsConverter; +} + + +namespace icu4x { +namespace capi { + struct UnitsConverter; +} // namespace capi +} // namespace + +namespace icu4x { +class UnitsConverter { +public: + + inline double convert(double value) const; + + inline std::unique_ptr<icu4x::UnitsConverter> clone() const; + + inline const icu4x::capi::UnitsConverter* AsFFI() const; + inline icu4x::capi::UnitsConverter* AsFFI(); + inline static const icu4x::UnitsConverter* FromFFI(const icu4x::capi::UnitsConverter* ptr); + inline static icu4x::UnitsConverter* FromFFI(icu4x::capi::UnitsConverter* ptr); + inline static void operator delete(void* ptr); +private: + UnitsConverter() = delete; + UnitsConverter(const icu4x::UnitsConverter&) = delete; + UnitsConverter(icu4x::UnitsConverter&&) noexcept = delete; + UnitsConverter operator=(const icu4x::UnitsConverter&) = delete; + UnitsConverter operator=(icu4x::UnitsConverter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_UnitsConverter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/UnitsConverter.hpp b/ffi/capi/bindings/cpp/icu4x/UnitsConverter.hpp new file mode 100644 index 00000000000..d4262342c31 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/UnitsConverter.hpp @@ -0,0 +1,62 @@ +#ifndef icu4x_UnitsConverter_HPP +#define icu4x_UnitsConverter_HPP + +#include "UnitsConverter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + double icu4x_UnitsConverter_convert_double_mv1(const icu4x::capi::UnitsConverter* self, double value); + + icu4x::capi::UnitsConverter* icu4x_UnitsConverter_clone_mv1(const icu4x::capi::UnitsConverter* self); + + + void icu4x_UnitsConverter_destroy_mv1(UnitsConverter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline double icu4x::UnitsConverter::convert(double value) const { + auto result = icu4x::capi::icu4x_UnitsConverter_convert_double_mv1(this->AsFFI(), + value); + return result; +} + +inline std::unique_ptr<icu4x::UnitsConverter> icu4x::UnitsConverter::clone() const { + auto result = icu4x::capi::icu4x_UnitsConverter_clone_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::UnitsConverter>(icu4x::UnitsConverter::FromFFI(result)); +} + +inline const icu4x::capi::UnitsConverter* icu4x::UnitsConverter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::UnitsConverter*>(this); +} + +inline icu4x::capi::UnitsConverter* icu4x::UnitsConverter::AsFFI() { + return reinterpret_cast<icu4x::capi::UnitsConverter*>(this); +} + +inline const icu4x::UnitsConverter* icu4x::UnitsConverter::FromFFI(const icu4x::capi::UnitsConverter* ptr) { + return reinterpret_cast<const icu4x::UnitsConverter*>(ptr); +} + +inline icu4x::UnitsConverter* icu4x::UnitsConverter::FromFFI(icu4x::capi::UnitsConverter* ptr) { + return reinterpret_cast<icu4x::UnitsConverter*>(ptr); +} + +inline void icu4x::UnitsConverter::operator delete(void* ptr) { + icu4x::capi::icu4x_UnitsConverter_destroy_mv1(reinterpret_cast<icu4x::capi::UnitsConverter*>(ptr)); +} + + +#endif // icu4x_UnitsConverter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.d.hpp b/ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.d.hpp new file mode 100644 index 00000000000..4da7363f316 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.d.hpp @@ -0,0 +1,58 @@ +#ifndef icu4x_UnitsConverterFactory_D_HPP +#define icu4x_UnitsConverterFactory_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct MeasureUnit; } +class MeasureUnit; +namespace capi { struct MeasureUnitParser; } +class MeasureUnitParser; +namespace capi { struct UnitsConverter; } +class UnitsConverter; +namespace capi { struct UnitsConverterFactory; } +class UnitsConverterFactory; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct UnitsConverterFactory; +} // namespace capi +} // namespace + +namespace icu4x { +class UnitsConverterFactory { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError> create(const icu4x::DataProvider& provider); + + inline std::unique_ptr<icu4x::UnitsConverter> converter(const icu4x::MeasureUnit& from, const icu4x::MeasureUnit& to) const; + + inline std::unique_ptr<icu4x::MeasureUnitParser> parser() const; + + inline const icu4x::capi::UnitsConverterFactory* AsFFI() const; + inline icu4x::capi::UnitsConverterFactory* AsFFI(); + inline static const icu4x::UnitsConverterFactory* FromFFI(const icu4x::capi::UnitsConverterFactory* ptr); + inline static icu4x::UnitsConverterFactory* FromFFI(icu4x::capi::UnitsConverterFactory* ptr); + inline static void operator delete(void* ptr); +private: + UnitsConverterFactory() = delete; + UnitsConverterFactory(const icu4x::UnitsConverterFactory&) = delete; + UnitsConverterFactory(icu4x::UnitsConverterFactory&&) noexcept = delete; + UnitsConverterFactory operator=(const icu4x::UnitsConverterFactory&) = delete; + UnitsConverterFactory operator=(icu4x::UnitsConverterFactory&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_UnitsConverterFactory_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.hpp b/ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.hpp new file mode 100644 index 00000000000..b267f13fec0 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/UnitsConverterFactory.hpp @@ -0,0 +1,76 @@ +#ifndef icu4x_UnitsConverterFactory_HPP +#define icu4x_UnitsConverterFactory_HPP + +#include "UnitsConverterFactory.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "MeasureUnit.hpp" +#include "MeasureUnitParser.hpp" +#include "UnitsConverter.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_UnitsConverterFactory_create_mv1_result {union {icu4x::capi::UnitsConverterFactory* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_UnitsConverterFactory_create_mv1_result; + icu4x_UnitsConverterFactory_create_mv1_result icu4x_UnitsConverterFactory_create_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::UnitsConverter* icu4x_UnitsConverterFactory_converter_mv1(const icu4x::capi::UnitsConverterFactory* self, const icu4x::capi::MeasureUnit* from, const icu4x::capi::MeasureUnit* to); + + icu4x::capi::MeasureUnitParser* icu4x_UnitsConverterFactory_parser_mv1(const icu4x::capi::UnitsConverterFactory* self); + + + void icu4x_UnitsConverterFactory_destroy_mv1(UnitsConverterFactory* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError> icu4x::UnitsConverterFactory::create(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_UnitsConverterFactory_create_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::UnitsConverterFactory>>(std::unique_ptr<icu4x::UnitsConverterFactory>(icu4x::UnitsConverterFactory::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UnitsConverterFactory>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::UnitsConverter> icu4x::UnitsConverterFactory::converter(const icu4x::MeasureUnit& from, const icu4x::MeasureUnit& to) const { + auto result = icu4x::capi::icu4x_UnitsConverterFactory_converter_mv1(this->AsFFI(), + from.AsFFI(), + to.AsFFI()); + return std::unique_ptr<icu4x::UnitsConverter>(icu4x::UnitsConverter::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::MeasureUnitParser> icu4x::UnitsConverterFactory::parser() const { + auto result = icu4x::capi::icu4x_UnitsConverterFactory_parser_mv1(this->AsFFI()); + return std::unique_ptr<icu4x::MeasureUnitParser>(icu4x::MeasureUnitParser::FromFFI(result)); +} + +inline const icu4x::capi::UnitsConverterFactory* icu4x::UnitsConverterFactory::AsFFI() const { + return reinterpret_cast<const icu4x::capi::UnitsConverterFactory*>(this); +} + +inline icu4x::capi::UnitsConverterFactory* icu4x::UnitsConverterFactory::AsFFI() { + return reinterpret_cast<icu4x::capi::UnitsConverterFactory*>(this); +} + +inline const icu4x::UnitsConverterFactory* icu4x::UnitsConverterFactory::FromFFI(const icu4x::capi::UnitsConverterFactory* ptr) { + return reinterpret_cast<const icu4x::UnitsConverterFactory*>(ptr); +} + +inline icu4x::UnitsConverterFactory* icu4x::UnitsConverterFactory::FromFFI(icu4x::capi::UnitsConverterFactory* ptr) { + return reinterpret_cast<icu4x::UnitsConverterFactory*>(ptr); +} + +inline void icu4x::UnitsConverterFactory::operator delete(void* ptr) { + icu4x::capi::icu4x_UnitsConverterFactory_destroy_mv1(reinterpret_cast<icu4x::capi::UnitsConverterFactory*>(ptr)); +} + + +#endif // icu4x_UnitsConverterFactory_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WeekCalculator.d.hpp b/ffi/capi/bindings/cpp/icu4x/WeekCalculator.d.hpp new file mode 100644 index 00000000000..3c2ba89ebf2 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WeekCalculator.d.hpp @@ -0,0 +1,60 @@ +#ifndef icu4x_WeekCalculator_D_HPP +#define icu4x_WeekCalculator_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct WeekCalculator; } +class WeekCalculator; +struct WeekendContainsDay; +class DataError; +class IsoWeekday; +} + + +namespace icu4x { +namespace capi { + struct WeekCalculator; +} // namespace capi +} // namespace + +namespace icu4x { +class WeekCalculator { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError> create(const icu4x::DataProvider& provider, const icu4x::Locale& locale); + + inline static std::unique_ptr<icu4x::WeekCalculator> from_first_day_of_week_and_min_week_days(icu4x::IsoWeekday first_weekday, uint8_t min_week_days); + + inline icu4x::IsoWeekday first_weekday() const; + + inline uint8_t min_week_days() const; + + inline icu4x::WeekendContainsDay weekend() const; + + inline const icu4x::capi::WeekCalculator* AsFFI() const; + inline icu4x::capi::WeekCalculator* AsFFI(); + inline static const icu4x::WeekCalculator* FromFFI(const icu4x::capi::WeekCalculator* ptr); + inline static icu4x::WeekCalculator* FromFFI(icu4x::capi::WeekCalculator* ptr); + inline static void operator delete(void* ptr); +private: + WeekCalculator() = delete; + WeekCalculator(const icu4x::WeekCalculator&) = delete; + WeekCalculator(icu4x::WeekCalculator&&) noexcept = delete; + WeekCalculator operator=(const icu4x::WeekCalculator&) = delete; + WeekCalculator operator=(icu4x::WeekCalculator&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_WeekCalculator_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WeekCalculator.hpp b/ffi/capi/bindings/cpp/icu4x/WeekCalculator.hpp new file mode 100644 index 00000000000..afa5fe22850 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WeekCalculator.hpp @@ -0,0 +1,90 @@ +#ifndef icu4x_WeekCalculator_HPP +#define icu4x_WeekCalculator_HPP + +#include "WeekCalculator.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "IsoWeekday.hpp" +#include "Locale.hpp" +#include "WeekendContainsDay.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_WeekCalculator_create_mv1_result {union {icu4x::capi::WeekCalculator* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WeekCalculator_create_mv1_result; + icu4x_WeekCalculator_create_mv1_result icu4x_WeekCalculator_create_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale); + + icu4x::capi::WeekCalculator* icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(icu4x::capi::IsoWeekday first_weekday, uint8_t min_week_days); + + icu4x::capi::IsoWeekday icu4x_WeekCalculator_first_weekday_mv1(const icu4x::capi::WeekCalculator* self); + + uint8_t icu4x_WeekCalculator_min_week_days_mv1(const icu4x::capi::WeekCalculator* self); + + icu4x::capi::WeekendContainsDay icu4x_WeekCalculator_weekend_mv1(const icu4x::capi::WeekCalculator* self); + + + void icu4x_WeekCalculator_destroy_mv1(WeekCalculator* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError> icu4x::WeekCalculator::create(const icu4x::DataProvider& provider, const icu4x::Locale& locale) { + auto result = icu4x::capi::icu4x_WeekCalculator_create_mv1(provider.AsFFI(), + locale.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WeekCalculator>>(std::unique_ptr<icu4x::WeekCalculator>(icu4x::WeekCalculator::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WeekCalculator>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::WeekCalculator> icu4x::WeekCalculator::from_first_day_of_week_and_min_week_days(icu4x::IsoWeekday first_weekday, uint8_t min_week_days) { + auto result = icu4x::capi::icu4x_WeekCalculator_from_first_day_of_week_and_min_week_days_mv1(first_weekday.AsFFI(), + min_week_days); + return std::unique_ptr<icu4x::WeekCalculator>(icu4x::WeekCalculator::FromFFI(result)); +} + +inline icu4x::IsoWeekday icu4x::WeekCalculator::first_weekday() const { + auto result = icu4x::capi::icu4x_WeekCalculator_first_weekday_mv1(this->AsFFI()); + return icu4x::IsoWeekday::FromFFI(result); +} + +inline uint8_t icu4x::WeekCalculator::min_week_days() const { + auto result = icu4x::capi::icu4x_WeekCalculator_min_week_days_mv1(this->AsFFI()); + return result; +} + +inline icu4x::WeekendContainsDay icu4x::WeekCalculator::weekend() const { + auto result = icu4x::capi::icu4x_WeekCalculator_weekend_mv1(this->AsFFI()); + return icu4x::WeekendContainsDay::FromFFI(result); +} + +inline const icu4x::capi::WeekCalculator* icu4x::WeekCalculator::AsFFI() const { + return reinterpret_cast<const icu4x::capi::WeekCalculator*>(this); +} + +inline icu4x::capi::WeekCalculator* icu4x::WeekCalculator::AsFFI() { + return reinterpret_cast<icu4x::capi::WeekCalculator*>(this); +} + +inline const icu4x::WeekCalculator* icu4x::WeekCalculator::FromFFI(const icu4x::capi::WeekCalculator* ptr) { + return reinterpret_cast<const icu4x::WeekCalculator*>(ptr); +} + +inline icu4x::WeekCalculator* icu4x::WeekCalculator::FromFFI(icu4x::capi::WeekCalculator* ptr) { + return reinterpret_cast<icu4x::WeekCalculator*>(ptr); +} + +inline void icu4x::WeekCalculator::operator delete(void* ptr) { + icu4x::capi::icu4x_WeekCalculator_destroy_mv1(reinterpret_cast<icu4x::capi::WeekCalculator*>(ptr)); +} + + +#endif // icu4x_WeekCalculator_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WeekOf.d.hpp b/ffi/capi/bindings/cpp/icu4x/WeekOf.d.hpp new file mode 100644 index 00000000000..920fb9801b1 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WeekOf.d.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_WeekOf_D_HPP +#define icu4x_WeekOf_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "WeekRelativeUnit.d.hpp" + +namespace icu4x { +class WeekRelativeUnit; +} + + +namespace icu4x { +namespace capi { + struct WeekOf { + uint16_t week; + icu4x::capi::WeekRelativeUnit unit; + }; +} // namespace capi +} // namespace + + +namespace icu4x { +struct WeekOf { + uint16_t week; + icu4x::WeekRelativeUnit unit; + + inline icu4x::capi::WeekOf AsFFI() const; + inline static icu4x::WeekOf FromFFI(icu4x::capi::WeekOf c_struct); +}; + +} // namespace +#endif // icu4x_WeekOf_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WeekOf.hpp b/ffi/capi/bindings/cpp/icu4x/WeekOf.hpp new file mode 100644 index 00000000000..11e1e097169 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WeekOf.hpp @@ -0,0 +1,41 @@ +#ifndef icu4x_WeekOf_HPP +#define icu4x_WeekOf_HPP + +#include "WeekOf.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "WeekRelativeUnit.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + + +inline icu4x::capi::WeekOf icu4x::WeekOf::AsFFI() const { + return icu4x::capi::WeekOf { + /* .week = */ week, + /* .unit = */ unit.AsFFI(), + }; +} + +inline icu4x::WeekOf icu4x::WeekOf::FromFFI(icu4x::capi::WeekOf c_struct) { + return icu4x::WeekOf { + /* .week = */ c_struct.week, + /* .unit = */ icu4x::WeekRelativeUnit::FromFFI(c_struct.unit), + }; +} + + +#endif // icu4x_WeekOf_HPP diff --git a/ffi/capi/bindings/cpp/WeekRelativeUnit.d.hpp b/ffi/capi/bindings/cpp/icu4x/WeekRelativeUnit.d.hpp similarity index 67% rename from ffi/capi/bindings/cpp/WeekRelativeUnit.d.hpp rename to ffi/capi/bindings/cpp/icu4x/WeekRelativeUnit.d.hpp index 8246aa60cb7..2801e505137 100644 --- a/ffi/capi/bindings/cpp/WeekRelativeUnit.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/WeekRelativeUnit.d.hpp @@ -1,5 +1,5 @@ -#ifndef WeekRelativeUnit_D_HPP -#define WeekRelativeUnit_D_HPP +#ifndef icu4x_WeekRelativeUnit_D_HPP +#define icu4x_WeekRelativeUnit_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { enum WeekRelativeUnit { WeekRelativeUnit_Previous = 0, @@ -20,6 +20,7 @@ namespace capi { } // namespace capi } // namespace +namespace icu4x { class WeekRelativeUnit { public: enum Value { @@ -35,11 +36,11 @@ class WeekRelativeUnit { // Prevent usage as boolean value explicit operator bool() const = delete; - inline diplomat::capi::WeekRelativeUnit AsFFI() const; - inline static WeekRelativeUnit FromFFI(diplomat::capi::WeekRelativeUnit c_enum); + inline icu4x::capi::WeekRelativeUnit AsFFI() const; + inline static icu4x::WeekRelativeUnit FromFFI(icu4x::capi::WeekRelativeUnit c_enum); private: Value value; }; - -#endif // WeekRelativeUnit_D_HPP +} // namespace +#endif // icu4x_WeekRelativeUnit_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WeekRelativeUnit.hpp b/ffi/capi/bindings/cpp/icu4x/WeekRelativeUnit.hpp new file mode 100644 index 00000000000..9e247090a76 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WeekRelativeUnit.hpp @@ -0,0 +1,38 @@ +#ifndef icu4x_WeekRelativeUnit_HPP +#define icu4x_WeekRelativeUnit_HPP + +#include "WeekRelativeUnit.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + + } // extern "C" +} // namespace capi +} // namespace + +inline icu4x::capi::WeekRelativeUnit icu4x::WeekRelativeUnit::AsFFI() const { + return static_cast<icu4x::capi::WeekRelativeUnit>(value); +} + +inline icu4x::WeekRelativeUnit icu4x::WeekRelativeUnit::FromFFI(icu4x::capi::WeekRelativeUnit c_enum) { + switch (c_enum) { + case icu4x::capi::WeekRelativeUnit_Previous: + case icu4x::capi::WeekRelativeUnit_Current: + case icu4x::capi::WeekRelativeUnit_Next: + return static_cast<icu4x::WeekRelativeUnit::Value>(c_enum); + default: + abort(); + } +} +#endif // icu4x_WeekRelativeUnit_HPP diff --git a/ffi/capi/bindings/cpp/WeekendContainsDay.d.hpp b/ffi/capi/bindings/cpp/icu4x/WeekendContainsDay.d.hpp similarity index 58% rename from ffi/capi/bindings/cpp/WeekendContainsDay.d.hpp rename to ffi/capi/bindings/cpp/icu4x/WeekendContainsDay.d.hpp index cda7450ad8a..356d9d13223 100644 --- a/ffi/capi/bindings/cpp/WeekendContainsDay.d.hpp +++ b/ffi/capi/bindings/cpp/icu4x/WeekendContainsDay.d.hpp @@ -1,5 +1,5 @@ -#ifndef WeekendContainsDay_D_HPP -#define WeekendContainsDay_D_HPP +#ifndef icu4x_WeekendContainsDay_D_HPP +#define icu4x_WeekendContainsDay_D_HPP #include <stdio.h> #include <stdint.h> @@ -7,10 +7,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { struct WeekendContainsDay { bool monday; @@ -25,6 +25,7 @@ namespace capi { } // namespace +namespace icu4x { struct WeekendContainsDay { bool monday; bool tuesday; @@ -34,9 +35,9 @@ struct WeekendContainsDay { bool saturday; bool sunday; - inline diplomat::capi::WeekendContainsDay AsFFI() const; - inline static WeekendContainsDay FromFFI(diplomat::capi::WeekendContainsDay c_struct); + inline icu4x::capi::WeekendContainsDay AsFFI() const; + inline static icu4x::WeekendContainsDay FromFFI(icu4x::capi::WeekendContainsDay c_struct); }; - -#endif // WeekendContainsDay_D_HPP +} // namespace +#endif // icu4x_WeekendContainsDay_D_HPP diff --git a/ffi/capi/bindings/cpp/WeekendContainsDay.hpp b/ffi/capi/bindings/cpp/icu4x/WeekendContainsDay.hpp similarity index 63% rename from ffi/capi/bindings/cpp/WeekendContainsDay.hpp rename to ffi/capi/bindings/cpp/icu4x/WeekendContainsDay.hpp index 669c5c9eefa..8eb8de65b32 100644 --- a/ffi/capi/bindings/cpp/WeekendContainsDay.hpp +++ b/ffi/capi/bindings/cpp/icu4x/WeekendContainsDay.hpp @@ -1,5 +1,5 @@ -#ifndef WeekendContainsDay_HPP -#define WeekendContainsDay_HPP +#ifndef icu4x_WeekendContainsDay_HPP +#define icu4x_WeekendContainsDay_HPP #include "WeekendContainsDay.d.hpp" @@ -9,10 +9,10 @@ #include <stdbool.h> #include <memory> #include <optional> -#include "diplomat_runtime.hpp" +#include "../diplomat_runtime.hpp" -namespace diplomat { +namespace icu4x { namespace capi { extern "C" { @@ -22,8 +22,8 @@ namespace capi { } // namespace -inline diplomat::capi::WeekendContainsDay WeekendContainsDay::AsFFI() const { - return diplomat::capi::WeekendContainsDay { +inline icu4x::capi::WeekendContainsDay icu4x::WeekendContainsDay::AsFFI() const { + return icu4x::capi::WeekendContainsDay { /* .monday = */ monday, /* .tuesday = */ tuesday, /* .wednesday = */ wednesday, @@ -34,8 +34,8 @@ inline diplomat::capi::WeekendContainsDay WeekendContainsDay::AsFFI() const { }; } -inline WeekendContainsDay WeekendContainsDay::FromFFI(diplomat::capi::WeekendContainsDay c_struct) { - return WeekendContainsDay { +inline icu4x::WeekendContainsDay icu4x::WeekendContainsDay::FromFFI(icu4x::capi::WeekendContainsDay c_struct) { + return icu4x::WeekendContainsDay { /* .monday = */ c_struct.monday, /* .tuesday = */ c_struct.tuesday, /* .wednesday = */ c_struct.wednesday, @@ -47,4 +47,4 @@ inline WeekendContainsDay WeekendContainsDay::FromFFI(diplomat::capi::WeekendCon } -#endif // WeekendContainsDay_HPP +#endif // icu4x_WeekendContainsDay_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.d.hpp b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.d.hpp new file mode 100644 index 00000000000..91db8b64b41 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.d.hpp @@ -0,0 +1,48 @@ +#ifndef icu4x_WordBreakIteratorLatin1_D_HPP +#define icu4x_WordBreakIteratorLatin1_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +class SegmenterWordType; +} + + +namespace icu4x { +namespace capi { + struct WordBreakIteratorLatin1; +} // namespace capi +} // namespace + +namespace icu4x { +class WordBreakIteratorLatin1 { +public: + + inline int32_t next(); + + inline icu4x::SegmenterWordType word_type() const; + + inline bool is_word_like() const; + + inline const icu4x::capi::WordBreakIteratorLatin1* AsFFI() const; + inline icu4x::capi::WordBreakIteratorLatin1* AsFFI(); + inline static const icu4x::WordBreakIteratorLatin1* FromFFI(const icu4x::capi::WordBreakIteratorLatin1* ptr); + inline static icu4x::WordBreakIteratorLatin1* FromFFI(icu4x::capi::WordBreakIteratorLatin1* ptr); + inline static void operator delete(void* ptr); +private: + WordBreakIteratorLatin1() = delete; + WordBreakIteratorLatin1(const icu4x::WordBreakIteratorLatin1&) = delete; + WordBreakIteratorLatin1(icu4x::WordBreakIteratorLatin1&&) noexcept = delete; + WordBreakIteratorLatin1 operator=(const icu4x::WordBreakIteratorLatin1&) = delete; + WordBreakIteratorLatin1 operator=(icu4x::WordBreakIteratorLatin1&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_WordBreakIteratorLatin1_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.hpp b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.hpp new file mode 100644 index 00000000000..9907dba201a --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorLatin1.hpp @@ -0,0 +1,69 @@ +#ifndef icu4x_WordBreakIteratorLatin1_HPP +#define icu4x_WordBreakIteratorLatin1_HPP + +#include "WordBreakIteratorLatin1.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "SegmenterWordType.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_WordBreakIteratorLatin1_next_mv1(icu4x::capi::WordBreakIteratorLatin1* self); + + icu4x::capi::SegmenterWordType icu4x_WordBreakIteratorLatin1_word_type_mv1(const icu4x::capi::WordBreakIteratorLatin1* self); + + bool icu4x_WordBreakIteratorLatin1_is_word_like_mv1(const icu4x::capi::WordBreakIteratorLatin1* self); + + + void icu4x_WordBreakIteratorLatin1_destroy_mv1(WordBreakIteratorLatin1* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::WordBreakIteratorLatin1::next() { + auto result = icu4x::capi::icu4x_WordBreakIteratorLatin1_next_mv1(this->AsFFI()); + return result; +} + +inline icu4x::SegmenterWordType icu4x::WordBreakIteratorLatin1::word_type() const { + auto result = icu4x::capi::icu4x_WordBreakIteratorLatin1_word_type_mv1(this->AsFFI()); + return icu4x::SegmenterWordType::FromFFI(result); +} + +inline bool icu4x::WordBreakIteratorLatin1::is_word_like() const { + auto result = icu4x::capi::icu4x_WordBreakIteratorLatin1_is_word_like_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::AsFFI() const { + return reinterpret_cast<const icu4x::capi::WordBreakIteratorLatin1*>(this); +} + +inline icu4x::capi::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::AsFFI() { + return reinterpret_cast<icu4x::capi::WordBreakIteratorLatin1*>(this); +} + +inline const icu4x::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::FromFFI(const icu4x::capi::WordBreakIteratorLatin1* ptr) { + return reinterpret_cast<const icu4x::WordBreakIteratorLatin1*>(ptr); +} + +inline icu4x::WordBreakIteratorLatin1* icu4x::WordBreakIteratorLatin1::FromFFI(icu4x::capi::WordBreakIteratorLatin1* ptr) { + return reinterpret_cast<icu4x::WordBreakIteratorLatin1*>(ptr); +} + +inline void icu4x::WordBreakIteratorLatin1::operator delete(void* ptr) { + icu4x::capi::icu4x_WordBreakIteratorLatin1_destroy_mv1(reinterpret_cast<icu4x::capi::WordBreakIteratorLatin1*>(ptr)); +} + + +#endif // icu4x_WordBreakIteratorLatin1_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.d.hpp b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.d.hpp new file mode 100644 index 00000000000..18e511e4dd7 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.d.hpp @@ -0,0 +1,48 @@ +#ifndef icu4x_WordBreakIteratorUtf16_D_HPP +#define icu4x_WordBreakIteratorUtf16_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +class SegmenterWordType; +} + + +namespace icu4x { +namespace capi { + struct WordBreakIteratorUtf16; +} // namespace capi +} // namespace + +namespace icu4x { +class WordBreakIteratorUtf16 { +public: + + inline int32_t next(); + + inline icu4x::SegmenterWordType word_type() const; + + inline bool is_word_like() const; + + inline const icu4x::capi::WordBreakIteratorUtf16* AsFFI() const; + inline icu4x::capi::WordBreakIteratorUtf16* AsFFI(); + inline static const icu4x::WordBreakIteratorUtf16* FromFFI(const icu4x::capi::WordBreakIteratorUtf16* ptr); + inline static icu4x::WordBreakIteratorUtf16* FromFFI(icu4x::capi::WordBreakIteratorUtf16* ptr); + inline static void operator delete(void* ptr); +private: + WordBreakIteratorUtf16() = delete; + WordBreakIteratorUtf16(const icu4x::WordBreakIteratorUtf16&) = delete; + WordBreakIteratorUtf16(icu4x::WordBreakIteratorUtf16&&) noexcept = delete; + WordBreakIteratorUtf16 operator=(const icu4x::WordBreakIteratorUtf16&) = delete; + WordBreakIteratorUtf16 operator=(icu4x::WordBreakIteratorUtf16&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_WordBreakIteratorUtf16_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.hpp b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.hpp new file mode 100644 index 00000000000..01343383c15 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf16.hpp @@ -0,0 +1,69 @@ +#ifndef icu4x_WordBreakIteratorUtf16_HPP +#define icu4x_WordBreakIteratorUtf16_HPP + +#include "WordBreakIteratorUtf16.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "SegmenterWordType.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_WordBreakIteratorUtf16_next_mv1(icu4x::capi::WordBreakIteratorUtf16* self); + + icu4x::capi::SegmenterWordType icu4x_WordBreakIteratorUtf16_word_type_mv1(const icu4x::capi::WordBreakIteratorUtf16* self); + + bool icu4x_WordBreakIteratorUtf16_is_word_like_mv1(const icu4x::capi::WordBreakIteratorUtf16* self); + + + void icu4x_WordBreakIteratorUtf16_destroy_mv1(WordBreakIteratorUtf16* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::WordBreakIteratorUtf16::next() { + auto result = icu4x::capi::icu4x_WordBreakIteratorUtf16_next_mv1(this->AsFFI()); + return result; +} + +inline icu4x::SegmenterWordType icu4x::WordBreakIteratorUtf16::word_type() const { + auto result = icu4x::capi::icu4x_WordBreakIteratorUtf16_word_type_mv1(this->AsFFI()); + return icu4x::SegmenterWordType::FromFFI(result); +} + +inline bool icu4x::WordBreakIteratorUtf16::is_word_like() const { + auto result = icu4x::capi::icu4x_WordBreakIteratorUtf16_is_word_like_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::AsFFI() const { + return reinterpret_cast<const icu4x::capi::WordBreakIteratorUtf16*>(this); +} + +inline icu4x::capi::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::AsFFI() { + return reinterpret_cast<icu4x::capi::WordBreakIteratorUtf16*>(this); +} + +inline const icu4x::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::FromFFI(const icu4x::capi::WordBreakIteratorUtf16* ptr) { + return reinterpret_cast<const icu4x::WordBreakIteratorUtf16*>(ptr); +} + +inline icu4x::WordBreakIteratorUtf16* icu4x::WordBreakIteratorUtf16::FromFFI(icu4x::capi::WordBreakIteratorUtf16* ptr) { + return reinterpret_cast<icu4x::WordBreakIteratorUtf16*>(ptr); +} + +inline void icu4x::WordBreakIteratorUtf16::operator delete(void* ptr) { + icu4x::capi::icu4x_WordBreakIteratorUtf16_destroy_mv1(reinterpret_cast<icu4x::capi::WordBreakIteratorUtf16*>(ptr)); +} + + +#endif // icu4x_WordBreakIteratorUtf16_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.d.hpp b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.d.hpp new file mode 100644 index 00000000000..01b6225baf1 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.d.hpp @@ -0,0 +1,48 @@ +#ifndef icu4x_WordBreakIteratorUtf8_D_HPP +#define icu4x_WordBreakIteratorUtf8_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +class SegmenterWordType; +} + + +namespace icu4x { +namespace capi { + struct WordBreakIteratorUtf8; +} // namespace capi +} // namespace + +namespace icu4x { +class WordBreakIteratorUtf8 { +public: + + inline int32_t next(); + + inline icu4x::SegmenterWordType word_type() const; + + inline bool is_word_like() const; + + inline const icu4x::capi::WordBreakIteratorUtf8* AsFFI() const; + inline icu4x::capi::WordBreakIteratorUtf8* AsFFI(); + inline static const icu4x::WordBreakIteratorUtf8* FromFFI(const icu4x::capi::WordBreakIteratorUtf8* ptr); + inline static icu4x::WordBreakIteratorUtf8* FromFFI(icu4x::capi::WordBreakIteratorUtf8* ptr); + inline static void operator delete(void* ptr); +private: + WordBreakIteratorUtf8() = delete; + WordBreakIteratorUtf8(const icu4x::WordBreakIteratorUtf8&) = delete; + WordBreakIteratorUtf8(icu4x::WordBreakIteratorUtf8&&) noexcept = delete; + WordBreakIteratorUtf8 operator=(const icu4x::WordBreakIteratorUtf8&) = delete; + WordBreakIteratorUtf8 operator=(icu4x::WordBreakIteratorUtf8&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_WordBreakIteratorUtf8_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.hpp b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.hpp new file mode 100644 index 00000000000..b6fab781bda --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordBreakIteratorUtf8.hpp @@ -0,0 +1,69 @@ +#ifndef icu4x_WordBreakIteratorUtf8_HPP +#define icu4x_WordBreakIteratorUtf8_HPP + +#include "WordBreakIteratorUtf8.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "SegmenterWordType.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + int32_t icu4x_WordBreakIteratorUtf8_next_mv1(icu4x::capi::WordBreakIteratorUtf8* self); + + icu4x::capi::SegmenterWordType icu4x_WordBreakIteratorUtf8_word_type_mv1(const icu4x::capi::WordBreakIteratorUtf8* self); + + bool icu4x_WordBreakIteratorUtf8_is_word_like_mv1(const icu4x::capi::WordBreakIteratorUtf8* self); + + + void icu4x_WordBreakIteratorUtf8_destroy_mv1(WordBreakIteratorUtf8* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline int32_t icu4x::WordBreakIteratorUtf8::next() { + auto result = icu4x::capi::icu4x_WordBreakIteratorUtf8_next_mv1(this->AsFFI()); + return result; +} + +inline icu4x::SegmenterWordType icu4x::WordBreakIteratorUtf8::word_type() const { + auto result = icu4x::capi::icu4x_WordBreakIteratorUtf8_word_type_mv1(this->AsFFI()); + return icu4x::SegmenterWordType::FromFFI(result); +} + +inline bool icu4x::WordBreakIteratorUtf8::is_word_like() const { + auto result = icu4x::capi::icu4x_WordBreakIteratorUtf8_is_word_like_mv1(this->AsFFI()); + return result; +} + +inline const icu4x::capi::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::AsFFI() const { + return reinterpret_cast<const icu4x::capi::WordBreakIteratorUtf8*>(this); +} + +inline icu4x::capi::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::AsFFI() { + return reinterpret_cast<icu4x::capi::WordBreakIteratorUtf8*>(this); +} + +inline const icu4x::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::FromFFI(const icu4x::capi::WordBreakIteratorUtf8* ptr) { + return reinterpret_cast<const icu4x::WordBreakIteratorUtf8*>(ptr); +} + +inline icu4x::WordBreakIteratorUtf8* icu4x::WordBreakIteratorUtf8::FromFFI(icu4x::capi::WordBreakIteratorUtf8* ptr) { + return reinterpret_cast<icu4x::WordBreakIteratorUtf8*>(ptr); +} + +inline void icu4x::WordBreakIteratorUtf8::operator delete(void* ptr) { + icu4x::capi::icu4x_WordBreakIteratorUtf8_destroy_mv1(reinterpret_cast<icu4x::capi::WordBreakIteratorUtf8*>(ptr)); +} + + +#endif // icu4x_WordBreakIteratorUtf8_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordSegmenter.d.hpp b/ffi/capi/bindings/cpp/icu4x/WordSegmenter.d.hpp new file mode 100644 index 00000000000..51a41e390ad --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordSegmenter.d.hpp @@ -0,0 +1,64 @@ +#ifndef icu4x_WordSegmenter_D_HPP +#define icu4x_WordSegmenter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct WordBreakIteratorLatin1; } +class WordBreakIteratorLatin1; +namespace capi { struct WordBreakIteratorUtf16; } +class WordBreakIteratorUtf16; +namespace capi { struct WordBreakIteratorUtf8; } +class WordBreakIteratorUtf8; +namespace capi { struct WordSegmenter; } +class WordSegmenter; +class DataError; +} + + +namespace icu4x { +namespace capi { + struct WordSegmenter; +} // namespace capi +} // namespace + +namespace icu4x { +class WordSegmenter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_auto(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_lstm(const icu4x::DataProvider& provider); + + inline static diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> create_dictionary(const icu4x::DataProvider& provider); + + inline std::unique_ptr<icu4x::WordBreakIteratorUtf8> segment(std::string_view input) const; + + inline std::unique_ptr<icu4x::WordBreakIteratorUtf16> segment16(std::u16string_view input) const; + + inline std::unique_ptr<icu4x::WordBreakIteratorLatin1> segment_latin1(diplomat::span<const uint8_t> input) const; + + inline const icu4x::capi::WordSegmenter* AsFFI() const; + inline icu4x::capi::WordSegmenter* AsFFI(); + inline static const icu4x::WordSegmenter* FromFFI(const icu4x::capi::WordSegmenter* ptr); + inline static icu4x::WordSegmenter* FromFFI(icu4x::capi::WordSegmenter* ptr); + inline static void operator delete(void* ptr); +private: + WordSegmenter() = delete; + WordSegmenter(const icu4x::WordSegmenter&) = delete; + WordSegmenter(icu4x::WordSegmenter&&) noexcept = delete; + WordSegmenter operator=(const icu4x::WordSegmenter&) = delete; + WordSegmenter operator=(icu4x::WordSegmenter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_WordSegmenter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/WordSegmenter.hpp b/ffi/capi/bindings/cpp/icu4x/WordSegmenter.hpp new file mode 100644 index 00000000000..d205047d87f --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/WordSegmenter.hpp @@ -0,0 +1,103 @@ +#ifndef icu4x_WordSegmenter_HPP +#define icu4x_WordSegmenter_HPP + +#include "WordSegmenter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "DataError.hpp" +#include "DataProvider.hpp" +#include "WordBreakIteratorLatin1.hpp" +#include "WordBreakIteratorUtf16.hpp" +#include "WordBreakIteratorUtf8.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_WordSegmenter_create_auto_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_auto_mv1_result; + icu4x_WordSegmenter_create_auto_mv1_result icu4x_WordSegmenter_create_auto_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_WordSegmenter_create_lstm_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_lstm_mv1_result; + icu4x_WordSegmenter_create_lstm_mv1_result icu4x_WordSegmenter_create_lstm_mv1(const icu4x::capi::DataProvider* provider); + + typedef struct icu4x_WordSegmenter_create_dictionary_mv1_result {union {icu4x::capi::WordSegmenter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_WordSegmenter_create_dictionary_mv1_result; + icu4x_WordSegmenter_create_dictionary_mv1_result icu4x_WordSegmenter_create_dictionary_mv1(const icu4x::capi::DataProvider* provider); + + icu4x::capi::WordBreakIteratorUtf8* icu4x_WordSegmenter_segment_utf8_mv1(const icu4x::capi::WordSegmenter* self, const char* input_data, size_t input_len); + + icu4x::capi::WordBreakIteratorUtf16* icu4x_WordSegmenter_segment_utf16_mv1(const icu4x::capi::WordSegmenter* self, const char16_t* input_data, size_t input_len); + + icu4x::capi::WordBreakIteratorLatin1* icu4x_WordSegmenter_segment_latin1_mv1(const icu4x::capi::WordSegmenter* self, const uint8_t* input_data, size_t input_len); + + + void icu4x_WordSegmenter_destroy_mv1(WordSegmenter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_auto(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_WordSegmenter_create_auto_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_lstm(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_WordSegmenter_create_lstm_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError> icu4x::WordSegmenter::create_dictionary(const icu4x::DataProvider& provider) { + auto result = icu4x::capi::icu4x_WordSegmenter_create_dictionary_mv1(provider.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::WordSegmenter>>(std::unique_ptr<icu4x::WordSegmenter>(icu4x::WordSegmenter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::WordSegmenter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err))); +} + +inline std::unique_ptr<icu4x::WordBreakIteratorUtf8> icu4x::WordSegmenter::segment(std::string_view input) const { + auto result = icu4x::capi::icu4x_WordSegmenter_segment_utf8_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::WordBreakIteratorUtf8>(icu4x::WordBreakIteratorUtf8::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::WordBreakIteratorUtf16> icu4x::WordSegmenter::segment16(std::u16string_view input) const { + auto result = icu4x::capi::icu4x_WordSegmenter_segment_utf16_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::WordBreakIteratorUtf16>(icu4x::WordBreakIteratorUtf16::FromFFI(result)); +} + +inline std::unique_ptr<icu4x::WordBreakIteratorLatin1> icu4x::WordSegmenter::segment_latin1(diplomat::span<const uint8_t> input) const { + auto result = icu4x::capi::icu4x_WordSegmenter_segment_latin1_mv1(this->AsFFI(), + input.data(), + input.size()); + return std::unique_ptr<icu4x::WordBreakIteratorLatin1>(icu4x::WordBreakIteratorLatin1::FromFFI(result)); +} + +inline const icu4x::capi::WordSegmenter* icu4x::WordSegmenter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::WordSegmenter*>(this); +} + +inline icu4x::capi::WordSegmenter* icu4x::WordSegmenter::AsFFI() { + return reinterpret_cast<icu4x::capi::WordSegmenter*>(this); +} + +inline const icu4x::WordSegmenter* icu4x::WordSegmenter::FromFFI(const icu4x::capi::WordSegmenter* ptr) { + return reinterpret_cast<const icu4x::WordSegmenter*>(ptr); +} + +inline icu4x::WordSegmenter* icu4x::WordSegmenter::FromFFI(icu4x::capi::WordSegmenter* ptr) { + return reinterpret_cast<icu4x::WordSegmenter*>(ptr); +} + +inline void icu4x::WordSegmenter::operator delete(void* ptr) { + icu4x::capi::icu4x_WordSegmenter_destroy_mv1(reinterpret_cast<icu4x::capi::WordSegmenter*>(ptr)); +} + + +#endif // icu4x_WordSegmenter_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.d.hpp b/ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.d.hpp new file mode 100644 index 00000000000..591257d306c --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.d.hpp @@ -0,0 +1,65 @@ +#ifndef icu4x_ZonedDateTimeFormatter_D_HPP +#define icu4x_ZonedDateTimeFormatter_D_HPP + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" + +namespace icu4x { +namespace capi { struct CustomTimeZone; } +class CustomTimeZone; +namespace capi { struct DataProvider; } +class DataProvider; +namespace capi { struct DateTime; } +class DateTime; +namespace capi { struct IsoDateTime; } +class IsoDateTime; +namespace capi { struct Locale; } +class Locale; +namespace capi { struct ZonedDateTimeFormatter; } +class ZonedDateTimeFormatter; +struct IsoTimeZoneOptions; +class DateLength; +class Error; +class TimeLength; +} + + +namespace icu4x { +namespace capi { + struct ZonedDateTimeFormatter; +} // namespace capi +} // namespace + +namespace icu4x { +class ZonedDateTimeFormatter { +public: + + inline static diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error> create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length); + + inline static diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error> create_with_lengths_and_iso_8601_time_zone_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length, icu4x::IsoTimeZoneOptions zone_options); + + inline diplomat::result<std::string, icu4x::Error> format_datetime_with_custom_time_zone(const icu4x::DateTime& datetime, const icu4x::CustomTimeZone& time_zone) const; + + inline diplomat::result<std::string, icu4x::Error> format_iso_datetime_with_custom_time_zone(const icu4x::IsoDateTime& datetime, const icu4x::CustomTimeZone& time_zone) const; + + inline const icu4x::capi::ZonedDateTimeFormatter* AsFFI() const; + inline icu4x::capi::ZonedDateTimeFormatter* AsFFI(); + inline static const icu4x::ZonedDateTimeFormatter* FromFFI(const icu4x::capi::ZonedDateTimeFormatter* ptr); + inline static icu4x::ZonedDateTimeFormatter* FromFFI(icu4x::capi::ZonedDateTimeFormatter* ptr); + inline static void operator delete(void* ptr); +private: + ZonedDateTimeFormatter() = delete; + ZonedDateTimeFormatter(const icu4x::ZonedDateTimeFormatter&) = delete; + ZonedDateTimeFormatter(icu4x::ZonedDateTimeFormatter&&) noexcept = delete; + ZonedDateTimeFormatter operator=(const icu4x::ZonedDateTimeFormatter&) = delete; + ZonedDateTimeFormatter operator=(icu4x::ZonedDateTimeFormatter&&) noexcept = delete; + static void operator delete[](void*, size_t) = delete; +}; + +} // namespace +#endif // icu4x_ZonedDateTimeFormatter_D_HPP diff --git a/ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.hpp b/ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.hpp new file mode 100644 index 00000000000..ee1fc860433 --- /dev/null +++ b/ffi/capi/bindings/cpp/icu4x/ZonedDateTimeFormatter.hpp @@ -0,0 +1,105 @@ +#ifndef icu4x_ZonedDateTimeFormatter_HPP +#define icu4x_ZonedDateTimeFormatter_HPP + +#include "ZonedDateTimeFormatter.d.hpp" + +#include <stdio.h> +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <memory> +#include <optional> +#include "../diplomat_runtime.hpp" +#include "CustomTimeZone.hpp" +#include "DataProvider.hpp" +#include "DateLength.hpp" +#include "DateTime.hpp" +#include "Error.hpp" +#include "IsoDateTime.hpp" +#include "IsoTimeZoneOptions.hpp" +#include "Locale.hpp" +#include "TimeLength.hpp" + + +namespace icu4x { +namespace capi { + extern "C" { + + typedef struct icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1_result {union {icu4x::capi::ZonedDateTimeFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1_result; + icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1_result icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength date_length, icu4x::capi::TimeLength time_length); + + typedef struct icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result {union {icu4x::capi::ZonedDateTimeFormatter* ok; icu4x::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result; + icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1_result icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateLength date_length, icu4x::capi::TimeLength time_length, icu4x::capi::IsoTimeZoneOptions zone_options); + + typedef struct icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1_result; + icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1_result icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1(const icu4x::capi::ZonedDateTimeFormatter* self, const icu4x::capi::DateTime* datetime, const icu4x::capi::CustomTimeZone* time_zone, diplomat::capi::DiplomatWrite* write); + + typedef struct icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1_result {union { icu4x::capi::Error err;}; bool is_ok;} icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1_result; + icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1_result icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(const icu4x::capi::ZonedDateTimeFormatter* self, const icu4x::capi::IsoDateTime* datetime, const icu4x::capi::CustomTimeZone* time_zone, diplomat::capi::DiplomatWrite* write); + + + void icu4x_ZonedDateTimeFormatter_destroy_mv1(ZonedDateTimeFormatter* self); + + } // extern "C" +} // namespace capi +} // namespace + +inline diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error> icu4x::ZonedDateTimeFormatter::create_with_lengths(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length) { + auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_create_with_lengths_mv1(provider.AsFFI(), + locale.AsFFI(), + date_length.AsFFI(), + time_length.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateTimeFormatter>>(std::unique_ptr<icu4x::ZonedDateTimeFormatter>(icu4x::ZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error> icu4x::ZonedDateTimeFormatter::create_with_lengths_and_iso_8601_time_zone_fallback(const icu4x::DataProvider& provider, const icu4x::Locale& locale, icu4x::DateLength date_length, icu4x::TimeLength time_length, icu4x::IsoTimeZoneOptions zone_options) { + auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_create_with_lengths_and_iso_8601_time_zone_fallback_mv1(provider.AsFFI(), + locale.AsFFI(), + date_length.AsFFI(), + time_length.AsFFI(), + zone_options.AsFFI()); + return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateTimeFormatter>>(std::unique_ptr<icu4x::ZonedDateTimeFormatter>(icu4x::ZonedDateTimeFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateTimeFormatter>, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::ZonedDateTimeFormatter::format_datetime_with_custom_time_zone(const icu4x::DateTime& datetime, const icu4x::CustomTimeZone& time_zone) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_format_datetime_with_custom_time_zone_mv1(this->AsFFI(), + datetime.AsFFI(), + time_zone.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline diplomat::result<std::string, icu4x::Error> icu4x::ZonedDateTimeFormatter::format_iso_datetime_with_custom_time_zone(const icu4x::IsoDateTime& datetime, const icu4x::CustomTimeZone& time_zone) const { + std::string output; + diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); + auto result = icu4x::capi::icu4x_ZonedDateTimeFormatter_format_iso_datetime_with_custom_time_zone_mv1(this->AsFFI(), + datetime.AsFFI(), + time_zone.AsFFI(), + &write); + return result.is_ok ? diplomat::result<std::string, icu4x::Error>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::Error>(diplomat::Err<icu4x::Error>(icu4x::Error::FromFFI(result.err))); +} + +inline const icu4x::capi::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::AsFFI() const { + return reinterpret_cast<const icu4x::capi::ZonedDateTimeFormatter*>(this); +} + +inline icu4x::capi::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::AsFFI() { + return reinterpret_cast<icu4x::capi::ZonedDateTimeFormatter*>(this); +} + +inline const icu4x::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::FromFFI(const icu4x::capi::ZonedDateTimeFormatter* ptr) { + return reinterpret_cast<const icu4x::ZonedDateTimeFormatter*>(ptr); +} + +inline icu4x::ZonedDateTimeFormatter* icu4x::ZonedDateTimeFormatter::FromFFI(icu4x::capi::ZonedDateTimeFormatter* ptr) { + return reinterpret_cast<icu4x::ZonedDateTimeFormatter*>(ptr); +} + +inline void icu4x::ZonedDateTimeFormatter::operator delete(void* ptr) { + icu4x::capi::icu4x_ZonedDateTimeFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::ZonedDateTimeFormatter*>(ptr)); +} + + +#endif // icu4x_ZonedDateTimeFormatter_HPP diff --git a/ffi/capi/src/bidi.rs b/ffi/capi/src/bidi.rs index 39e50513f0c..de90f55dff5 100644 --- a/ffi/capi/src/bidi.rs +++ b/ffi/capi/src/bidi.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; use alloc::vec::Vec; diff --git a/ffi/capi/src/calendar.rs b/ffi/capi/src/calendar.rs index d70953c2678..813e1648a12 100644 --- a/ffi/capi/src/calendar.rs +++ b/ffi/capi/src/calendar.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; use alloc::sync::Arc; diff --git a/ffi/capi/src/casemap.rs b/ffi/capi/src/casemap.rs index aba0db7a9a9..10eacf819a7 100644 --- a/ffi/capi/src/casemap.rs +++ b/ffi/capi/src/casemap.rs @@ -6,6 +6,7 @@ use icu_casemap::titlecase::TitlecaseOptions; #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/collator.rs b/ffi/capi/src/collator.rs index 4abef19b007..5a2c044d3db 100644 --- a/ffi/capi/src/collator.rs +++ b/ffi/capi/src/collator.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/collections_sets.rs b/ffi/capi/src/collections_sets.rs index d5b5db98a9f..00984621b4e 100644 --- a/ffi/capi/src/collections_sets.rs +++ b/ffi/capi/src/collections_sets.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/date.rs b/ffi/capi/src/date.rs index 6b4231a1d77..bbaf6ed21e2 100644 --- a/ffi/capi/src/date.rs +++ b/ffi/capi/src/date.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; use alloc::sync::Arc; diff --git a/ffi/capi/src/datetime.rs b/ffi/capi/src/datetime.rs index a5c730bba6c..cf1a9f032c3 100644 --- a/ffi/capi/src/datetime.rs +++ b/ffi/capi/src/datetime.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; use alloc::sync::Arc; diff --git a/ffi/capi/src/datetime_formatter.rs b/ffi/capi/src/datetime_formatter.rs index b23e0448d24..f8818177794 100644 --- a/ffi/capi/src/datetime_formatter.rs +++ b/ffi/capi/src/datetime_formatter.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/decimal.rs b/ffi/capi/src/decimal.rs index a2846ca73b8..0103794f13c 100644 --- a/ffi/capi/src/decimal.rs +++ b/ffi/capi/src/decimal.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/displaynames.rs b/ffi/capi/src/displaynames.rs index a11e52d7b47..97fbb8ce64f 100644 --- a/ffi/capi/src/displaynames.rs +++ b/ffi/capi/src/displaynames.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/errors.rs b/ffi/capi/src/errors.rs index dd928c372ce..4699d68b857 100644 --- a/ffi/capi/src/errors.rs +++ b/ffi/capi/src/errors.rs @@ -6,6 +6,7 @@ use ffi::*; #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { #[derive(Debug, PartialEq, Eq)] #[repr(C)] diff --git a/ffi/capi/src/fallbacker.rs b/ffi/capi/src/fallbacker.rs index b5ae74fab73..a7dc3258a7c 100644 --- a/ffi/capi/src/fallbacker.rs +++ b/ffi/capi/src/fallbacker.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/fixed_decimal.rs b/ffi/capi/src/fixed_decimal.rs index af2507feccf..9b32f1dd322 100644 --- a/ffi/capi/src/fixed_decimal.rs +++ b/ffi/capi/src/fixed_decimal.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/list.rs b/ffi/capi/src/list.rs index bca11ba4d86..5a45b03ffcb 100644 --- a/ffi/capi/src/list.rs +++ b/ffi/capi/src/list.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/locale.rs b/ffi/capi/src/locale.rs index 444f0c21b4d..1d23eb7738e 100644 --- a/ffi/capi/src/locale.rs +++ b/ffi/capi/src/locale.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/locale_core.rs b/ffi/capi/src/locale_core.rs index e33f9a823a1..aede0c4ab81 100644 --- a/ffi/capi/src/locale_core.rs +++ b/ffi/capi/src/locale_core.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/locale_directionality.rs b/ffi/capi/src/locale_directionality.rs index 937fabe8c7d..e7abab8402a 100644 --- a/ffi/capi/src/locale_directionality.rs +++ b/ffi/capi/src/locale_directionality.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/logging.rs b/ffi/capi/src/logging.rs index 754a142e5f8..679e66a9e7b 100644 --- a/ffi/capi/src/logging.rs +++ b/ffi/capi/src/logging.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/metazone_calculator.rs b/ffi/capi/src/metazone_calculator.rs index 723588029ed..431ee99ec64 100644 --- a/ffi/capi/src/metazone_calculator.rs +++ b/ffi/capi/src/metazone_calculator.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/normalizer.rs b/ffi/capi/src/normalizer.rs index ff588651884..a80919fbd01 100644 --- a/ffi/capi/src/normalizer.rs +++ b/ffi/capi/src/normalizer.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/normalizer_properties.rs b/ffi/capi/src/normalizer_properties.rs index 0b2f51d2111..573f0923d64 100644 --- a/ffi/capi/src/normalizer_properties.rs +++ b/ffi/capi/src/normalizer_properties.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/pluralrules.rs b/ffi/capi/src/pluralrules.rs index d097f63b115..3bd18c70397 100644 --- a/ffi/capi/src/pluralrules.rs +++ b/ffi/capi/src/pluralrules.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/properties_iter.rs b/ffi/capi/src/properties_iter.rs index 0d86f202dc1..902804aa26c 100644 --- a/ffi/capi/src/properties_iter.rs +++ b/ffi/capi/src/properties_iter.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; use core::ops::RangeInclusive; diff --git a/ffi/capi/src/properties_maps.rs b/ffi/capi/src/properties_maps.rs index d85a277880b..fd337965f7f 100644 --- a/ffi/capi/src/properties_maps.rs +++ b/ffi/capi/src/properties_maps.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/properties_names.rs b/ffi/capi/src/properties_names.rs index 61f05faf7b8..171ee5c5bac 100644 --- a/ffi/capi/src/properties_names.rs +++ b/ffi/capi/src/properties_names.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/properties_sets.rs b/ffi/capi/src/properties_sets.rs index 20d35cc0016..0d521353c04 100644 --- a/ffi/capi/src/properties_sets.rs +++ b/ffi/capi/src/properties_sets.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/properties_unisets.rs b/ffi/capi/src/properties_unisets.rs index 5cc67caf0b9..556e3031b5d 100644 --- a/ffi/capi/src/properties_unisets.rs +++ b/ffi/capi/src/properties_unisets.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/provider.rs b/ffi/capi/src/provider.rs index 18661ac0b6a..ff6484614e5 100644 --- a/ffi/capi/src/provider.rs +++ b/ffi/capi/src/provider.rs @@ -15,6 +15,7 @@ pub enum DataProviderInner { #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/script.rs b/ffi/capi/src/script.rs index cdb168f02fc..30f8a6a449a 100644 --- a/ffi/capi/src/script.rs +++ b/ffi/capi/src/script.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/segmenter_grapheme.rs b/ffi/capi/src/segmenter_grapheme.rs index 0c65731bd5f..10124c38121 100644 --- a/ffi/capi/src/segmenter_grapheme.rs +++ b/ffi/capi/src/segmenter_grapheme.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/segmenter_line.rs b/ffi/capi/src/segmenter_line.rs index fbcb3633df8..c5de93fa83f 100644 --- a/ffi/capi/src/segmenter_line.rs +++ b/ffi/capi/src/segmenter_line.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/segmenter_sentence.rs b/ffi/capi/src/segmenter_sentence.rs index be3b8929387..2a14101c46d 100644 --- a/ffi/capi/src/segmenter_sentence.rs +++ b/ffi/capi/src/segmenter_sentence.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/segmenter_word.rs b/ffi/capi/src/segmenter_word.rs index f52173c2b66..6f2a097a65d 100644 --- a/ffi/capi/src/segmenter_word.rs +++ b/ffi/capi/src/segmenter_word.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/time.rs b/ffi/capi/src/time.rs index a7b420a3553..4f5f130e704 100644 --- a/ffi/capi/src/time.rs +++ b/ffi/capi/src/time.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/timezone.rs b/ffi/capi/src/timezone.rs index f69c132ff6f..87d828a0b48 100644 --- a/ffi/capi/src/timezone.rs +++ b/ffi/capi/src/timezone.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; use core::fmt::Write; diff --git a/ffi/capi/src/timezone_formatter.rs b/ffi/capi/src/timezone_formatter.rs index 75233ea7a45..62dfcc61b19 100644 --- a/ffi/capi/src/timezone_formatter.rs +++ b/ffi/capi/src/timezone_formatter.rs @@ -25,6 +25,7 @@ macro_rules! call_method { #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/timezone_mapper.rs b/ffi/capi/src/timezone_mapper.rs index 57d8d55c857..73f7d011188 100644 --- a/ffi/capi/src/timezone_mapper.rs +++ b/ffi/capi/src/timezone_mapper.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; use writeable::Writeable; diff --git a/ffi/capi/src/units_converter.rs b/ffi/capi/src/units_converter.rs index dc1a79ed044..c88cd14e650 100644 --- a/ffi/capi/src/units_converter.rs +++ b/ffi/capi/src/units_converter.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/week.rs b/ffi/capi/src/week.rs index f3cd716a15d..748c3983bcb 100644 --- a/ffi/capi/src/week.rs +++ b/ffi/capi/src/week.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/ffi/capi/src/zoned_formatter.rs b/ffi/capi/src/zoned_formatter.rs index 091902b354e..a4568b10684 100644 --- a/ffi/capi/src/zoned_formatter.rs +++ b/ffi/capi/src/zoned_formatter.rs @@ -4,6 +4,7 @@ #[diplomat::bridge] #[diplomat::abi_rename = "icu4x_{0}_mv1"] +#[diplomat::attr(*, namespace = "icu4x")] pub mod ffi { use alloc::boxed::Box; diff --git a/tutorials/cpp/bidi.cpp b/tutorials/cpp/bidi.cpp index 53f632eaf7a..a5160779d37 100644 --- a/tutorials/cpp/bidi.cpp +++ b/tutorials/cpp/bidi.cpp @@ -2,12 +2,14 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "DataProvider.hpp" -#include "Bidi.hpp" -#include "Logger.hpp" +#include <icu4x/DataProvider.hpp> +#include <icu4x/Bidi.hpp> +#include <icu4x/Logger.hpp> #include <iostream> +using namespace icu4x; + int main() { std::unique_ptr<DataProvider> dp = DataProvider::compiled(); std::unique_ptr<Bidi> bidi = Bidi::create(*dp.get()).ok().value(); diff --git a/tutorials/cpp/casemapping.cpp b/tutorials/cpp/casemapping.cpp index 194bb317c91..2c905c7c206 100644 --- a/tutorials/cpp/casemapping.cpp +++ b/tutorials/cpp/casemapping.cpp @@ -2,14 +2,16 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "CaseMapper.hpp" -#include "Logger.hpp" -#include "DataProvider.hpp" -#include "CodePointSetBuilder.hpp" -#include "TitlecaseOptionsV1.hpp" +#include <icu4x/CaseMapper.hpp> +#include <icu4x/Logger.hpp> +#include <icu4x/DataProvider.hpp> +#include <icu4x/CodePointSetBuilder.hpp> +#include <icu4x/TitlecaseOptionsV1.hpp> #include <iostream> +using namespace icu4x; + int main() { Logger::init_simple_logger(); std::unique_ptr<Locale> und = Locale::from_string("und").ok().value(); diff --git a/tutorials/cpp/collator.cpp b/tutorials/cpp/collator.cpp index 8c61b23e66b..379a533e76f 100644 --- a/tutorials/cpp/collator.cpp +++ b/tutorials/cpp/collator.cpp @@ -2,14 +2,16 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "Collator.hpp" -#include "DataProvider.hpp" -#include "Locale.hpp" -#include "Logger.hpp" +#include <icu4x/Collator.hpp> +#include <icu4x/DataProvider.hpp> +#include <icu4x/Locale.hpp> +#include <icu4x/Logger.hpp> #include <iostream> #include <string_view> +using namespace icu4x; + int main() { Logger::init_simple_logger(); std::unique_ptr<DataProvider> dp = DataProvider::compiled(); diff --git a/tutorials/cpp/datetime.cpp b/tutorials/cpp/datetime.cpp index 92487ef5c6a..f71cff87214 100644 --- a/tutorials/cpp/datetime.cpp +++ b/tutorials/cpp/datetime.cpp @@ -2,21 +2,23 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "GregorianDateFormatter.hpp" -#include "GregorianDateTimeFormatter.hpp" -#include "DateTimeFormatter.hpp" -#include "TimeFormatter.hpp" -#include "Logger.hpp" -#include "CustomTimeZone.hpp" -#include "TimeZoneIdMapper.hpp" -#include "TimeZoneIdMapperWithFastCanonicalization.hpp" -#include "GregorianZonedDateTimeFormatter.hpp" -#include "ZonedDateTimeFormatter.hpp" +#include <icu4x/GregorianDateFormatter.hpp> +#include <icu4x/GregorianDateTimeFormatter.hpp> +#include <icu4x/DateTimeFormatter.hpp> +#include <icu4x/TimeFormatter.hpp> +#include <icu4x/Logger.hpp> +#include <icu4x/CustomTimeZone.hpp> +#include <icu4x/TimeZoneIdMapper.hpp> +#include <icu4x/TimeZoneIdMapperWithFastCanonicalization.hpp> +#include <icu4x/GregorianZonedDateTimeFormatter.hpp> +#include <icu4x/ZonedDateTimeFormatter.hpp> #include <atomic> #include <iostream> #include <array> +using namespace icu4x; + int main() { Logger::init_simple_logger(); std::unique_ptr<Locale> locale = Locale::from_string("es").ok().value(); diff --git a/tutorials/cpp/fixeddecimal.cpp b/tutorials/cpp/fixeddecimal.cpp index b42c0c7ce08..faad6275fea 100644 --- a/tutorials/cpp/fixeddecimal.cpp +++ b/tutorials/cpp/fixeddecimal.cpp @@ -2,12 +2,14 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "FixedDecimalFormatter.hpp" -#include "Logger.hpp" +#include <icu4x/FixedDecimalFormatter.hpp> +#include <icu4x/Logger.hpp> #include <iostream> #include <array> +using namespace icu4x; + int main() { Logger::init_simple_logger(); std::unique_ptr<Locale> locale = Locale::from_string("bn").ok().value(); diff --git a/tutorials/cpp/locale.cpp b/tutorials/cpp/locale.cpp index fe15f4f0dba..78de052440a 100644 --- a/tutorials/cpp/locale.cpp +++ b/tutorials/cpp/locale.cpp @@ -2,11 +2,13 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "Locale.hpp" -#include "Logger.hpp" +#include <icu4x/Locale.hpp> +#include <icu4x/Logger.hpp> #include <iostream> +using namespace icu4x; + static bool test_locale(Locale &locale, std::string_view expectedString, const char *message) { std::string actualString = locale.to_string(); diff --git a/tutorials/cpp/pluralrules.cpp b/tutorials/cpp/pluralrules.cpp index 758f97617e5..780e2a19b66 100644 --- a/tutorials/cpp/pluralrules.cpp +++ b/tutorials/cpp/pluralrules.cpp @@ -2,11 +2,13 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "PluralRules.hpp" -#include "Logger.hpp" +#include <icu4x/PluralRules.hpp> +#include <icu4x/Logger.hpp> #include <iostream> +using namespace icu4x; + const std::string_view path = "../../provider/source/data/debug/"; int main() { diff --git a/tutorials/cpp/properties.cpp b/tutorials/cpp/properties.cpp index 5ddd4e0dfbd..0fb99822459 100644 --- a/tutorials/cpp/properties.cpp +++ b/tutorials/cpp/properties.cpp @@ -2,16 +2,18 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "CodePointSetData.hpp" -#include "UnicodeSetData.hpp" -#include "CodePointMapData16.hpp" -#include "CodePointMapData8.hpp" -#include "PropertyValueNameToEnumMapper.hpp" -#include "GeneralCategoryNameToMaskMapper.hpp" -#include "Logger.hpp" +#include <icu4x/CodePointSetData.hpp> +#include <icu4x/UnicodeSetData.hpp> +#include <icu4x/CodePointMapData16.hpp> +#include <icu4x/CodePointMapData8.hpp> +#include <icu4x/PropertyValueNameToEnumMapper.hpp> +#include <icu4x/GeneralCategoryNameToMaskMapper.hpp> +#include <icu4x/Logger.hpp> #include <iostream> +using namespace icu4x; + int test_set_property(CodePointSetData* data, char32_t included, char32_t excluded) { bool contains1 = data->contains(included); bool contains2 = data->contains(excluded); diff --git a/tutorials/cpp/segmenter.cpp b/tutorials/cpp/segmenter.cpp index 7e8b316f316..e5edb51c0a2 100644 --- a/tutorials/cpp/segmenter.cpp +++ b/tutorials/cpp/segmenter.cpp @@ -2,16 +2,18 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "DataProvider.hpp" -#include "GraphemeClusterSegmenter.hpp" -#include "LineSegmenter.hpp" -#include "SentenceSegmenter.hpp" -#include "WordSegmenter.hpp" -#include "Logger.hpp" +#include <icu4x/DataProvider.hpp> +#include <icu4x/GraphemeClusterSegmenter.hpp> +#include <icu4x/LineSegmenter.hpp> +#include <icu4x/SentenceSegmenter.hpp> +#include <icu4x/WordSegmenter.hpp> +#include <icu4x/Logger.hpp> #include <iostream> #include <string_view> +using namespace icu4x; + using std::cout; using std::endl; diff --git a/tutorials/cpp/units_converter.cpp b/tutorials/cpp/units_converter.cpp index c6ae29cc1c9..4ef8fbcf835 100644 --- a/tutorials/cpp/units_converter.cpp +++ b/tutorials/cpp/units_converter.cpp @@ -2,14 +2,16 @@ // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). -#include "DataProvider.hpp" -#include "MeasureUnit.hpp" -#include "MeasureUnitParser.hpp" -#include "UnitsConverter.hpp" -#include "UnitsConverterFactory.hpp" +#include <icu4x/DataProvider.hpp> +#include <icu4x/MeasureUnit.hpp> +#include <icu4x/MeasureUnitParser.hpp> +#include <icu4x/UnitsConverter.hpp> +#include <icu4x/UnitsConverterFactory.hpp> #include <iostream> +using namespace icu4x; + int main() { auto dp = DataProvider::compiled(); auto converter_factory = UnitsConverterFactory::create(*dp.get()).ok().value();