Add range-related utility properties/methods

This commit is contained in:
Said Achmiz 2021-12-13 18:15:47 -05:00
parent cb674c9ac3
commit 169eb7e71a
2 changed files with 35 additions and 0 deletions

View File

@ -42,6 +42,17 @@
*/ */
@property (readonly) NSData *dataWithTerminatedCString; @property (readonly) NSData *dataWithTerminatedCString;
/* Range manipulation.
*/
@property (readonly) NSRange startRange;
@property (readonly) NSRange fullRange;
@property (readonly) NSRange endRange;
-(NSRange) rangeAfterRange:(NSRange)aRange;
-(NSRange) rangeFromEndOfRange:(NSRange)aRange;
-(NSRange) rangeToEndFrom:(NSRange)aRange;
/** Returns an NSData object containing a blank C string (i.e. a byte sequence /** Returns an NSData object containing a blank C string (i.e. a byte sequence
of length 1, containing the null character '\0'). of length 1, containing the null character '\0').
*/ */

View File

@ -37,6 +37,30 @@
} }
} }
-(NSRange) startRange {
return NSMakeRange(0, 0);
}
-(NSRange) fullRange {
return NSMakeRange(0, self.length);
}
-(NSRange) endRange {
return NSMakeRange(self.length, 0);
}
-(NSRange) rangeAfterRange:(NSRange)aRange {
return NSMakeRange(NSMaxRange(aRange), self.length - NSMaxRange(aRange));
}
-(NSRange) rangeFromEndOfRange:(NSRange)aRange {
return NSMakeRange(NSMaxRange(aRange) - 1, self.length - NSMaxRange(aRange) + 1);
}
-(NSRange) rangeToEndFrom:(NSRange)aRange {
return NSMakeRange(aRange.location, self.length - aRange.location);
}
+(NSData *) dataWithBlankCString { +(NSData *) dataWithBlankCString {
return [NSData dataWithBytes:"\0" return [NSData dataWithBytes:"\0"
length:1]; length:1];