mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-31 12:54:13 -04:00 
			
		
		
		
	added files via upload
This commit is contained in:
		| @@ -0,0 +1,110 @@ | ||||
| // | ||||
| //  FLEXPropertyAttributes.h | ||||
| //  FLEX | ||||
| // | ||||
| //  Derived from MirrorKit. | ||||
| //  Created by Tanner on 7/5/15. | ||||
| //  Copyright (c) 2020 FLEX Team. All rights reserved. | ||||
| // | ||||
|  | ||||
| #import <Foundation/Foundation.h> | ||||
| #import <objc/runtime.h> | ||||
|  | ||||
| NS_ASSUME_NONNULL_BEGIN | ||||
|  | ||||
| #pragma mark FLEXPropertyAttributes | ||||
|  | ||||
| /// See \e FLEXRuntimeUtilitiy.h for valid string tokens. | ||||
| /// See this link on how to construct a proper attributes string: | ||||
| /// https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtPropertyIntrospection.html | ||||
| @interface FLEXPropertyAttributes : NSObject <NSCopying, NSMutableCopying> { | ||||
| // These are necessary for the mutable subclass to function | ||||
| @protected | ||||
|     NSUInteger _count; | ||||
|     NSString *_string, *_backingIvar, *_typeEncoding, *_oldTypeEncoding, *_fullDeclaration; | ||||
|     NSDictionary *_dictionary; | ||||
|     objc_property_attribute_t *_list; | ||||
|     SEL _customGetter, _customSetter; | ||||
|     BOOL _isReadOnly, _isCopy, _isRetained, _isNonatomic, _isDynamic, _isWeak, _isGarbageCollectable; | ||||
| } | ||||
|  | ||||
| + (instancetype)attributesForProperty:(objc_property_t)property; | ||||
| /// @warning Raises an exception if \e attributes is invalid, \c nil, or contains unsupported keys. | ||||
| + (instancetype)attributesFromDictionary:(NSDictionary *)attributes; | ||||
|  | ||||
| /// Copies the attributes list to a buffer you must \c free() yourself. | ||||
| /// Use \c list instead if you do not need more control over the lifetime of the list. | ||||
| /// @param attributesCountOut the number of attributes is returned in this parameter. | ||||
| - (objc_property_attribute_t *)copyAttributesList:(nullable unsigned int *)attributesCountOut; | ||||
|  | ||||
| /// The number of property attributes. | ||||
| @property (nonatomic, readonly) NSUInteger count; | ||||
| /// For use with \c class_replaceProperty and the like. | ||||
| @property (nonatomic, readonly) objc_property_attribute_t *list; | ||||
| /// The string value of the property attributes. | ||||
| @property (nonatomic, readonly) NSString *string; | ||||
| /// A human-readable version of the property attributes. | ||||
| @property (nonatomic, readonly) NSString *fullDeclaration; | ||||
| /// A dictionary of the property attributes. | ||||
| /// Values are either a string or \c YES. Boolean attributes | ||||
| /// which are false will not be present in the dictionary. | ||||
| @property (nonatomic, readonly) NSDictionary *dictionary; | ||||
|  | ||||
| /// The name of the instance variable backing the property. | ||||
| @property (nonatomic, readonly, nullable) NSString *backingIvar; | ||||
| /// The type encoding of the property. | ||||
| @property (nonatomic, readonly, nullable) NSString *typeEncoding; | ||||
| /// The \e old type encoding of the property. | ||||
| @property (nonatomic, readonly, nullable) NSString *oldTypeEncoding; | ||||
| /// The property's custom getter, if any. | ||||
| @property (nonatomic, readonly, nullable) SEL customGetter; | ||||
| /// The property's custom setter, if any. | ||||
| @property (nonatomic, readonly, nullable) SEL customSetter; | ||||
| /// The property's custom getter as a string, if any. | ||||
| @property (nonatomic, readonly, nullable) NSString *customGetterString; | ||||
| /// The property's custom setter as a string, if any. | ||||
| @property (nonatomic, readonly, nullable) NSString *customSetterString; | ||||
|  | ||||
| @property (nonatomic, readonly) BOOL isReadOnly; | ||||
| @property (nonatomic, readonly) BOOL isCopy; | ||||
| @property (nonatomic, readonly) BOOL isRetained; | ||||
| @property (nonatomic, readonly) BOOL isNonatomic; | ||||
| @property (nonatomic, readonly) BOOL isDynamic; | ||||
| @property (nonatomic, readonly) BOOL isWeak; | ||||
| @property (nonatomic, readonly) BOOL isGarbageCollectable; | ||||
|  | ||||
| @end | ||||
|  | ||||
|  | ||||
| #pragma mark FLEXPropertyAttributes | ||||
| @interface FLEXMutablePropertyAttributes : FLEXPropertyAttributes | ||||
|  | ||||
| /// Creates and returns an empty property attributes object. | ||||
| + (instancetype)attributes; | ||||
|  | ||||
| /// The name of the instance variable backing the property. | ||||
| @property (nonatomic, nullable) NSString *backingIvar; | ||||
| /// The type encoding of the property. | ||||
| @property (nonatomic, nullable) NSString *typeEncoding; | ||||
| /// The \e old type encoding of the property. | ||||
| @property (nonatomic, nullable) NSString *oldTypeEncoding; | ||||
| /// The property's custom getter, if any. | ||||
| @property (nonatomic, nullable) SEL customGetter; | ||||
| /// The property's custom setter, if any. | ||||
| @property (nonatomic, nullable) SEL customSetter; | ||||
|  | ||||
| @property (nonatomic) BOOL isReadOnly; | ||||
| @property (nonatomic) BOOL isCopy; | ||||
| @property (nonatomic) BOOL isRetained; | ||||
| @property (nonatomic) BOOL isNonatomic; | ||||
| @property (nonatomic) BOOL isDynamic; | ||||
| @property (nonatomic) BOOL isWeak; | ||||
| @property (nonatomic) BOOL isGarbageCollectable; | ||||
|  | ||||
| /// A more convenient method of setting the \c typeEncoding property. | ||||
| /// @discussion This will not work for complex types like structs and primitive pointers. | ||||
| - (void)setTypeEncodingChar:(char)type; | ||||
|  | ||||
| @end | ||||
|  | ||||
| NS_ASSUME_NONNULL_END | ||||
		Reference in New Issue
	
	Block a user
	 Balackburn
					Balackburn