1
2
3
4
5
6
7
8
9
|
1
2
3
4
5
6
7
8
9
|
-
+
|
/*
* Copyright (c) 2008-2022 Jonathan Schleifer <js@nil.im>
* Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
|
| ︙ | | |
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
-
|
# define __STDC_CONSTANT_MACROS
#endif
#include <stdarg.h>
#import "OFObject.h"
#import "OFCollection.h"
#import "OFSerialization.h"
OF_ASSUME_NONNULL_BEGIN
/** @file */
@class OFArray OF_GENERIC(ObjectType);
|
| ︙ | | |
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
-
+
|
* @warning Do not mutate objects that are in a set! Changing the hash of
* objects in a set breaks the internal representation of the set!
*
* @note Subclasses must implement @ref count, @ref containsObject: and
* @ref objectEnumerator.
*/
@interface OFSet OF_GENERIC(ObjectType): OFObject <OFCollection, OFCopying,
OFMutableCopying, OFSerialization>
OFMutableCopying>
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# define ObjectType id
#endif
/**
* @brief An array of all objects in the set.
*/
@property (readonly, nonatomic) OFArray OF_GENERIC(ObjectType) *allObjects;
|
| ︙ | | |
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
+
+
+
+
+
+
+
|
* @param objects An array of objects for the set
* @param count The number of objects in the specified array
* @return A new, autoreleased set with the specified objects
*/
+ (instancetype)setWithObjects: (ObjectType const _Nonnull *_Nonnull)objects
count: (size_t)count;
/**
* @brief Initializes an already allocated set to be empty.
*
* @return An initialized set
*/
- (instancetype)init OF_DESIGNATED_INITIALIZER;
/**
* @brief Initializes an already allocated set with the specified set.
*
* @param set The set to initialize the set with
* @return An initialized set with the specified set
*/
- (instancetype)initWithSet: (OFSet OF_GENERIC(ObjectType) *)set;
|
| ︙ | | |
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
-
+
|
* @brief Initializes an already allocated set with the specified objects.
*
* @param objects An array of objects for the set
* @param count The number of objects in the specified array
* @return An initialized set with the specified objects
*/
- (instancetype)initWithObjects: (ObjectType const _Nonnull *_Nonnull)objects
count: (size_t)count;
count: (size_t)count OF_DESIGNATED_INITIALIZER;
/**
* @brief Returns an OFEnumerator to enumerate through all objects of the set.
*
* @return An OFEnumerator to enumerate through all objects of the set
*/
- (OFEnumerator OF_GENERIC(ObjectType) *)objectEnumerator;
|
| ︙ | | |