ugender.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // © 2016 and later: Unicode, Inc. and others.
  2. // License & terms of use: http://www.unicode.org/copyright.html
  3. /*
  4. *****************************************************************************************
  5. * Copyright (C) 2010-2013, International Business Machines
  6. * Corporation and others. All Rights Reserved.
  7. *****************************************************************************************
  8. */
  9. #ifndef UGENDER_H
  10. #define UGENDER_H
  11. #include "unicode/utypes.h"
  12. #if !UCONFIG_NO_FORMATTING
  13. #if U_SHOW_CPLUSPLUS_API
  14. #include "unicode/localpointer.h"
  15. #endif // U_SHOW_CPLUSPLUS_API
  16. /**
  17. * \file
  18. * \brief C API: The purpose of this API is to compute the gender of a list as a
  19. * whole given the gender of each element.
  20. *
  21. */
  22. /**
  23. * Genders
  24. * @stable ICU 50
  25. */
  26. enum UGender {
  27. /**
  28. * Male gender.
  29. * @stable ICU 50
  30. */
  31. UGENDER_MALE,
  32. /**
  33. * Female gender.
  34. * @stable ICU 50
  35. */
  36. UGENDER_FEMALE,
  37. /**
  38. * Neutral gender.
  39. * @stable ICU 50
  40. */
  41. UGENDER_OTHER
  42. };
  43. /**
  44. * @stable ICU 50
  45. */
  46. typedef enum UGender UGender;
  47. struct UGenderInfo;
  48. /**
  49. * Opaque UGenderInfo object for use in C programs.
  50. * @stable ICU 50
  51. */
  52. typedef struct UGenderInfo UGenderInfo;
  53. /**
  54. * Opens a new UGenderInfo object given locale.
  55. * @param locale The locale for which the rules are desired.
  56. * @param status UErrorCode pointer
  57. * @return A UGenderInfo for the specified locale, or NULL if an error occurred.
  58. * @stable ICU 50
  59. */
  60. U_CAPI const UGenderInfo* U_EXPORT2
  61. ugender_getInstance(const char *locale, UErrorCode *status);
  62. /**
  63. * Given a list, returns the gender of the list as a whole.
  64. * @param genderInfo pointer that ugender_getInstance returns.
  65. * @param genders the gender of each element in the list.
  66. * @param size the size of the list.
  67. * @param status A pointer to a UErrorCode to receive any errors.
  68. * @return The gender of the list.
  69. * @stable ICU 50
  70. */
  71. U_CAPI UGender U_EXPORT2
  72. ugender_getListGender(const UGenderInfo* genderInfo, const UGender *genders, int32_t size, UErrorCode *status);
  73. #endif /* #if !UCONFIG_NO_FORMATTING */
  74. #endif