ugender.h revision 64339d36f8bd4db5025fe2988eda22b491a9219c
1// Copyright (C) 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 10#ifndef UGENDER_H 11#define UGENDER_H 12 13#include "unicode/utypes.h" 14 15#if !UCONFIG_NO_FORMATTING 16 17#include "unicode/localpointer.h" 18 19/** 20 * \file 21 * \brief C API: The purpose of this API is to compute the gender of a list as a 22 * whole given the gender of each element. 23 * 24 */ 25 26/** 27 * Genders 28 * @stable ICU 50 29 */ 30enum UGender { 31 /** 32 * Male gender. 33 * @stable ICU 50 34 */ 35 UGENDER_MALE, 36 /** 37 * Female gender. 38 * @stable ICU 50 39 */ 40 UGENDER_FEMALE, 41 /** 42 * Neutral gender. 43 * @stable ICU 50 44 */ 45 UGENDER_OTHER 46}; 47/** 48 * @stable ICU 50 49 */ 50typedef enum UGender UGender; 51 52/** 53 * Opaque UGenderInfo object for use in C programs. 54 * @stable ICU 50 55 */ 56struct UGenderInfo; 57typedef struct UGenderInfo UGenderInfo; 58 59/** 60 * Opens a new UGenderInfo object given locale. 61 * @param locale The locale for which the rules are desired. 62 * @param status UErrorCode pointer 63 * @return A UGenderInfo for the specified locale, or NULL if an error occurred. 64 * @stable ICU 50 65 */ 66U_STABLE const UGenderInfo* U_EXPORT2 67ugender_getInstance(const char *locale, UErrorCode *status); 68 69 70/** 71 * Given a list, returns the gender of the list as a whole. 72 * @param genderInfo pointer that ugender_getInstance returns. 73 * @param genders the gender of each element in the list. 74 * @param size the size of the list. 75 * @param status A pointer to a UErrorCode to receive any errors. 76 * @return The gender of the list. 77 * @stable ICU 50 78 */ 79U_STABLE UGender U_EXPORT2 80ugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status); 81 82#endif /* #if !UCONFIG_NO_FORMATTING */ 83 84#endif 85