<commit_before>#ifndef GUARD_FILE_STATUS_H
#define GUARD_FILE_STATUS_H 1

#include "../utility/bitmask_operators.h"

namespace filesystem {
inline namespace v1 {

enum class file_type
{
	not_found = -1,
	none = 0,
	regular = 1,
	directory = 2,
	symlink = 3,
	block = 4,
	character = 5,
	fifo = 6,
	socket = 7,
	unknown = 8,
};

enum class perms : unsigned int
{
	none             = 0,

	owner_read       = 00400,
	owner_write      = 00200,
	owner_exec       = 00100,

	group_read       = 00040,
	group_write      = 00020,
	group_exec       = 00010,

	others_read      = 00040,
	others_write     = 00020,
	others_exec      = 00010,

	set_uid          = 04000,
	set_gid          = 02000,
	sticky_bit       = 01000,

	owner_all        = owner_read | owner_write | owner_exec,
	group_all        = group_read | group_write | group_exec,
	others_all       = others_read | others_write | others_exec,
	all              = owner_all | group_all | others_all,
	mask             = all | set_uid | set_gid | sticky_bit,

	unknown          = 0xffff,
	add_perms        = 0x10000,
	remove_perms     = 0x20000,
	resolve_symlinks = 0x40000,
};

DEFINE_BITMASK_OPERATORS(perms, unsigned int);
<commit_msg>Added mask value for add/remove<commit_after>#ifndef GUARD_FILE_STATUS_H
#define GUARD_FILE_STATUS_H 1

#include "../utility/bitmask_operators.h"

namespace filesystem {
inline namespace v1 {

enum class file_type
{
	not_found = -1,
	none = 0,
	regular = 1,
	directory = 2,
	symlink = 3,
	block = 4,
	character = 5,
	fifo = 6,
	socket = 7,
	unknown = 8,
};

enum class perms : unsigned int
{
	none             = 0,

	owner_read       = 00400,
	owner_write      = 00200,
	owner_exec       = 00100,

	group_read       = 00040,
	group_write      = 00020,
	group_exec       = 00010,

	others_read      = 00040,
	others_write     = 00020,
	others_exec      = 00010,

	set_uid          = 04000,
	set_gid          = 02000,
	sticky_bit       = 01000,

	owner_all        = owner_read | owner_write | owner_exec,
	group_all        = group_read | group_write | group_exec,
	others_all       = others_read | others_write | others_exec,
	all              = owner_all | group_all | others_all,
	mask             = all | set_uid | set_gid | sticky_bit,

	unknown          = 0xffff,

	add_perms        = 0x10000,
	remove_perms     = 0x20000,

	add_remove_mask  = 0x30000,

	resolve_symlinks = 0x40000,
};

DEFINE_BITMASK_OPERATORS(perms, unsigned int);

{'fraction_non_alphanumeric': 0.0853960396039604, 'fraction_numerical': 0.07838283828382839, 'mean_word_length': 2.4348441926345608, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2985930', 'n_tokens_mistral': 1060, 'n_tokens_neox': 886, 'n_words': 202}