123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- ////////////////////////////////////////////////////////////////////////////
- //
- // Copyright 2020 Realm Inc.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- //
- ////////////////////////////////////////////////////////////////////////////
- #import <Realm/RLMObjectId.h>
- #import <Realm/RLMDecimal128.h>
- #pragma mark RLMBSONType
- /**
- Allowed BSON types.
- */
- typedef NS_ENUM(NSUInteger, RLMBSONType) {
- /// BSON Null type
- RLMBSONTypeNull,
- /// BSON Int32 type
- RLMBSONTypeInt32,
- /// BSON Int64 type
- RLMBSONTypeInt64,
- /// BSON Bool type
- RLMBSONTypeBool,
- /// BSON Double type
- RLMBSONTypeDouble,
- /// BSON String type
- RLMBSONTypeString,
- /// BSON Binary type
- RLMBSONTypeBinary,
- /// BSON Timestamp type
- RLMBSONTypeTimestamp,
- /// BSON Datetime type
- RLMBSONTypeDatetime,
- /// BSON ObjectId type
- RLMBSONTypeObjectId,
- /// BSON Decimal128 type
- RLMBSONTypeDecimal128,
- /// BSON RegularExpression type
- RLMBSONTypeRegularExpression,
- /// BSON MaxKey type
- RLMBSONTypeMaxKey,
- /// BSON MinKey type
- RLMBSONTypeMinKey,
- /// BSON Document type
- RLMBSONTypeDocument,
- /// BSON Array type
- RLMBSONTypeArray,
- /// BSON UUID type
- RLMBSONTypeUUID
- };
- #pragma mark RLMBSON
- /**
- Protocol representing a BSON value. BSON is a computer data interchange format.
- The name "BSON" is based on the term JSON and stands for "Binary JSON".
-
- The following types conform to RLMBSON:
-
- `NSNull`
- `NSNumber`
- `NSString`
- `NSData`
- `NSDateInterval`
- `NSDate`
- `RLMObjectId`
- `RLMDecimal128`
- `NSRegularExpression`
- `RLMMaxKey`
- `RLMMinKey`
- `NSDictionary`
- `NSArray`
- `NSUUID`
-
- @see RLMBSONType
- @see bsonspec.org
- */
- @protocol RLMBSON
- /**
- The BSON type for the conforming interface.
- */
- @property (readonly) RLMBSONType bsonType NS_REFINED_FOR_SWIFT;
- /**
- Whether or not this BSON is equal to another.
- @param other The BSON to compare to
- */
- - (BOOL)isEqual:(_Nullable id)other;
- @end
- /// :nodoc:
- @interface NSNull (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSNumber (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSString (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSData (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSDateInterval (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSDate (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface RLMObjectId (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface RLMDecimal128 (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSRegularExpression (RLMBSON)<RLMBSON>
- @end
- /// MaxKey will always be the greatest value when comparing to other BSON types
- @interface RLMMaxKey : NSObject
- @end
- /// MinKey will always be the smallest value when comparing to other BSON types
- @interface RLMMinKey : NSObject
- @end
- /// :nodoc:
- @interface RLMMaxKey (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface RLMMinKey (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSDictionary (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSMutableArray (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSArray (RLMBSON)<RLMBSON>
- @end
- /// :nodoc:
- @interface NSUUID (RLMBSON)<RLMBSON>
- @end
|