Data Structures
Here are the data structures with brief descriptions:
 CU8_CHARINFO_TABLEStruct U8_CHARINFO_TABLE is used to store additional character info not provided by the statically defined tables
 CU8_CLIENTStruct U8_CLIENT This structure represents a particular live client of a server
 CU8_DECOMPOSITIONStruct U8_DECOMPOSITION indicates a mapping between a single Unicode codepoint and an equivalent Unicode sequence
 CU8_EXCEPTIONStruct U8_EXCEPTION represents an error condition
 CU8_INPUTStruct U8_INPUT Structure used for stream-based UTF-8 input
 CU8_MB_MAPStruct U8_CHARINFO_TABLE is used to store multi-byte character mappings
 CU8_OPEN_XFILESStruct U8_OPEN_XFILES is a linked list of open xfiles used to ensure that buffers are flushed when the process ends normally
 CU8_OUTPUTStruct U8_OUTPUT is an structural type which provides for UTF-8 output
 CU8_SERVERStruct U8_SERVER This structure represents a server's state and connections
 CU8_SERVER_INFOStruct U8_SERVER_INFO describes information about a particular server socket used to listen for new connections
 CU8_STREAMStruct U8_STREAM is an abstract structural type which is extended by U8_INPUT and U8_OUTPUT
 CU8_SUBSCRIPTIONThe subscription structure maps filenames to ifchanged functions
 CU8_TEXT_ENCODINGThe U8_TEXT_ENCODING struct encodes information about a character encoding used for converting text between the encoding and UTF-8
 CU8_XINPUTStruct U8_XINPUT is the extension of U8_INPUT which deals with stream-based conversion from other character sets
 CU8_XOUTPUTStruct U8_XOUTPUT is the extension of U8_OUTPUT which deals with stream-based conversion into other character sets
 CU8_XTIMEThe U8_XTIME struct defines a variable precision timezone-offset time representation with extractable components