/** @page features Library features

\section features_bufr_decoder BUFR decoder features

The decoder supports BUFR editions 2, 3 and 4, both uncompressed and
compressed.

C operators supported are:

 - 1 change data width
 - 2 change data scale
 - 4 add associated field, limited to 32 bits of associated fields and to
   associated field significances 1, 2, and 6.
 - 5 character data
 - 6 local descriptor with explicit length
 - 8 override length of character data
 - 22 quality information matched via data present bitmap
 - 23 substituted values matched via data present bitmap
 - 24 first order statistical values matched via data present bitmap


\section features_bufr_encoder BUFR encoder features

All features supported by the decoder are supported by the encoder, and tested
via decode/reencode/decode runs.

The encoder however does not yet support compression of multisubset data
sections.


\section features_crex_decoder CREX decoder features

The decoder supports CREX edition 1.

B, R and D opcodes are supported. Some C modifiers may be supported, but are
untested due to lack of real-world samples.


\section features_crex_encoder CREX encoder features

All features supported by the decoder are supported by the encoder, and tested
via decode/reencode/decode runs.


\section codec_details Coding/decoding details

BUFR and CREX header information is stored in member variables of
wreport::Bulletin or, for encoding-specific cases, wreport::BufrBulletin and
wreport::Crexbulletin.

The contents of the data descriptor section are stored in
wreport::Bulletin::datadesc.

The data section is split in 1 or more wreport::Subset objects, stored in
wreport::Bulletin::subsets.

BUFR decoding details (such as pointers to beginning and end of the various
message sections) are stored in wreport::BufrBulletin::raw_details.

Decoded values are stored as wreport::Var inside wreport::Subset objects.
Values that refer to other values (such as associated fields, quality
information, substituted values and so on) are stored as attributes of the
variable they refer to.

Data Present Bitmaps and other C modifier parameters are stored as special
wreport::Var objects, using ad-hoc wreport::Varinfo information that is not
found in the usual tables:

 - Data Present Bitmaps are stored as string variables, where "+" means "data
   present" and "-" means "data not present".
 - Associated fields are stored as attributes to the wreport::Var object they
   refer to, according to their Associate Field Significance:
    - significance code 1: stored as a B33002 attribute
    - significance code 2: stored as a B33003 attribute
    - significance code 6: stored as a B33050 attribute
 - Quality information is stored as attributes of the variable they refer to,
   using the appropriate B33YYY descriptor for the attribute values.
 - Substituted fields are stored as attributes of the variables they
   substitute; the attributes will have the same wreport::Varcode as the
   variable.
*/
