16#include "bitcompressionmethod.hpp"
17#include "bitdefines.hpp"
18#include "bittypes.hpp"
34template<
typename Enum >
37template<
typename Enum >
38inline constexpr auto to_underlying( Enum enum_value )
noexcept -> underlying_type_t< Enum > {
39 return static_cast< underlying_type_t< Enum >
>( enum_value );
43 return static_cast< FormatFeatures >( to_underlying( lhs ) | to_underlying( rhs ) );
46using FormatFeaturesType = underlying_type_t< FormatFeatures >;
49 return to_underlying( lhs ) & to_underlying( rhs );
81 BIT7Z_NODISCARD
auto value() const noexcept ->
unsigned char;
87 auto operator==(
BitInFormat const& other ) const noexcept ->
bool;
93 auto operator!=(
BitInFormat const& other ) const noexcept ->
bool;
119 :
BitInFormat(
value ), mExtension( ext ), mDefaultMethod( defaultMethod ), mFeatures( features ) {}
162 const
tchar* mExtension;
171#ifdef BIT7Z_AUTO_FORMAT
240#ifdef BIT7Z_AUTO_FORMAT
241#define BIT7Z_DEFAULT_FORMAT = BitFormat::Auto
243#define BIT7Z_DEFAULT_FORMAT
The main namespace of the bit7z library.
Definition bit7zlibrary.hpp:30
FormatFeatures
The FormatFeatures enum specifies the features supported by an archive file format.
Definition bitformat.hpp:25
@ HeaderEncryption
The format can encrypt the file names (2^4 = 0010000)
@ MultipleFiles
The format can compress/extract multiple files (2^0 = 0000001)
@ MultipleMethods
The format can use different compression methods (2^6 = 0100000)
@ Encryption
The format supports archive encryption (2^3 = 0001000)
@ SolidArchive
The format supports solid archives (2^1 = 0000010)
@ CompressionLevel
The format is able to use different compression levels (2^2 = 0000100)
char tchar
Definition bittypes.hpp:82
BitCompressionMethod
The BitCompressionMethod enum represents the compression methods used by 7z when creating archives.
Definition bitcompressionmethod.hpp:18