mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-31 12:54:14 -04:00 
			
		
		
		
	added files via upload
This commit is contained in:
		| @@ -0,0 +1,88 @@ | ||||
| // | ||||
| //  FLEXSearchToken.m | ||||
| //  FLEX | ||||
| // | ||||
| //  Created by Tanner on 3/22/17. | ||||
| //  Copyright © 2017 Tanner Bennett. All rights reserved. | ||||
| // | ||||
|  | ||||
| #import "FLEXSearchToken.h" | ||||
|  | ||||
| @interface FLEXSearchToken () { | ||||
|     NSString *flex_description; | ||||
| } | ||||
| @end | ||||
|  | ||||
| @implementation FLEXSearchToken | ||||
|  | ||||
| + (instancetype)any { | ||||
|     static FLEXSearchToken *any = nil; | ||||
|     static dispatch_once_t onceToken; | ||||
|     dispatch_once(&onceToken, ^{ | ||||
|         any = [self string:nil options:TBWildcardOptionsAny]; | ||||
|     }); | ||||
|  | ||||
|     return any; | ||||
| } | ||||
|  | ||||
| + (instancetype)string:(NSString *)string options:(TBWildcardOptions)options { | ||||
|     FLEXSearchToken *token  = [self new]; | ||||
|     token->_string  = string; | ||||
|     token->_options = options; | ||||
|     return token; | ||||
| } | ||||
|  | ||||
| - (BOOL)isAbsolute { | ||||
|     return _options == TBWildcardOptionsNone; | ||||
| } | ||||
|  | ||||
| - (BOOL)isAny { | ||||
|     return _options == TBWildcardOptionsAny; | ||||
| } | ||||
|  | ||||
| - (BOOL)isEmpty { | ||||
|     return self.isAny && self.string.length == 0; | ||||
| } | ||||
|  | ||||
| - (NSString *)description { | ||||
|     if (flex_description) { | ||||
|         return flex_description; | ||||
|     } | ||||
|  | ||||
|     switch (_options) { | ||||
|         case TBWildcardOptionsNone: | ||||
|             flex_description = _string; | ||||
|             break; | ||||
|         case TBWildcardOptionsAny: | ||||
|             flex_description = @"*"; | ||||
|             break; | ||||
|         default: { | ||||
|             NSMutableString *desc = [NSMutableString new]; | ||||
|             if (_options & TBWildcardOptionsPrefix) { | ||||
|                 [desc appendString:@"*"]; | ||||
|             } | ||||
|             [desc appendString:_string]; | ||||
|             if (_options & TBWildcardOptionsSuffix) { | ||||
|                 [desc appendString:@"*"]; | ||||
|             } | ||||
|             flex_description = desc; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return flex_description; | ||||
| } | ||||
|  | ||||
| - (NSUInteger)hash { | ||||
|     return self.description.hash; | ||||
| } | ||||
|  | ||||
| - (BOOL)isEqual:(id)object { | ||||
|     if ([object isKindOfClass:[FLEXSearchToken class]]) { | ||||
|         FLEXSearchToken *token = object; | ||||
|         return [_string isEqualToString:token->_string] && _options == token->_options; | ||||
|     } | ||||
|  | ||||
|     return NO; | ||||
| } | ||||
|  | ||||
| @end | ||||
		Reference in New Issue
	
	Block a user
	 Balackburn
					Balackburn