<commit_before>/**
	Copyright (C) 2013 <NAME>, <NAME>

	Date:  July 2013
	License:  MIT  (see COPYING)
 */

#import <Foundation/Foundation.h>
#import <EtoileFoundation/EtoileFoundation.h>
#import <CoreObject/COPersistentObjectContext.h>

@class COSQLiteStore, COEditingContext, COPersistentRoot, COBranch, COObjectGraphContext, COObject;
@class COUndoTrackStore, COUndoTrack, COCommandGroup;
@class COCrossPersistentRootDeadRelationshipCache, CORevisionCache;
@class COError;

/**
 * The behavior to decide when the editing context should unload persistent 
 * roots.
 *
 * TODO: If we keep it around, this should probably become a mask.
 */
typedef NS_ENUM(NSUInteger, COEditingContextUnloadingBehavior) {
	/**
	 * Persistent roots cannot be unloaded, except uncommitted persistent roots
	 * on deletion.
	 */
	COEditingContextUnloadingBehaviorNever,
	/**
	 * Persistent roots can be unloaded on deletion.
	 *
     * For external deletions committed in other editing contexts, persistent
	 * roots will be unloaded in the current one.
	 */
	COEditingContextUnloadingBehaviorOnDeletion
};

/**
 * @group Core
 * @abstract An editing context exposes an in-memory snapshot of a CoreObject <commit_msg>[gnustep] GNUstep doesn’t currently define NS_ENUM, define it ourselves if it isn’t present.<commit_after>/**
	Copyright (C) 2013 <NAME>, <NAME>

	Date:  July 2013
	License:  MIT  (see COPYING)
 */

#import <Foundation/Foundation.h>
#import <EtoileFoundation/EtoileFoundation.h>
#import <CoreObject/COPersistentObjectContext.h>

@class COSQLiteStore, COEditingContext, COPersistentRoot, COBranch, COObjectGraphContext, COObject;
@class COUndoTrackStore, COUndoTrack, COCommandGroup;
@class COCrossPersistentRootDeadRelationshipCache, CORevisionCache;
@class COError;

#ifndef NS_ENUM
#	if __has_feature(objc_fixed_enum)
#		define NS_ENUM(type, name) enum name : type name; enum name : type
#	else
#		define NS_ENUM(type, name) type name; enum
#	endif
#endif // NS_ENUM

/**
 * The behavior to decide when the editing context should unload persistent 
 * roots.
 *
 * TODO: If we keep it around, this should probably become a mask.
 */
typedef NS_ENUM(NSUInteger, COEditingContextUnloadingBehavior) {
	/**
	 * Persistent roots cannot be unloaded, except uncommitted persistent roots
	 * on deletion.
	 */
	COEditingContextUnloadingBehaviorNever,
	/**
	 * Persistent roots can be unloaded on deletion.
	 *
     * For external deletions committed in other editing contexts, persistent
	 * roots will be unloaded in the current one.
	 */
	COEditingContextUnloadingBehaviorOnDeletion
};

/**
 * @group Core
 * @abstract An editing context exposes an in-memory snapshot of a CoreObject 
{'fraction_non_alphanumeric': 0.083986562150056, 'fraction_numerical': 0.0059723777528928705, 'mean_word_length': 4.995525727069351, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, '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': '5902921', 'n_tokens_mistral': 834, 'n_tokens_neox': 789, 'n_words': 262}