/// <summary> /// Efficiently check if a <see cref="GeneralBitFlags">flag</see> is set without enum un-/boxing /// </summary> /// <param name="entry"></param> /// <param name="flag"></param> /// <returns>Returns whether the flag was set</returns> public static bool HasFlag(this ZipEntry entry, GeneralBitFlags flag) => (entry.Flags & (int)flag) != 0;
/// <summary> /// Efficiently set a <see cref="GeneralBitFlags">flag</see> without enum un-/boxing /// </summary> /// <param name="entry"></param> /// <param name="flag"></param> /// <param name="enabled">Whether the passed flag should be set (1) or cleared (0)</param> public static void SetFlag(this ZipEntry entry, GeneralBitFlags flag, bool enabled = true) => entry.Flags = enabled ? entry.Flags | (int)flag : entry.Flags & ~(int)flag;
/// <summary> /// Returns the appropriate encoding for an input <see cref="ZipEntry"/> according to <paramref name="flags"/>. /// If overridden by <see cref="ForceZipLegacyEncoding"/>, it always returns the encoding indicated by <see cref="CodePage"/>. /// </summary> /// <param name="flags"></param> /// <returns></returns> public Encoding ZipInputEncoding(GeneralBitFlags flags) => ZipInputEncoding((int)flags);