Skip to content

Instantly share code, notes, and snippets.

@steipete
Last active June 7, 2022 05:20
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save steipete/7e3c69b985165dc23c5ec169b857ff42 to your computer and use it in GitHub Desktop.
Save steipete/7e3c69b985165dc23c5ec169b857ff42 to your computer and use it in GitHub Desktop.
//
// PSPDFFastEnumeration.h
// PSPDFFoundation
//
// PSPDFKit is the leading cross-platform solution for integrating PDFs into your apps: https://pspdfkit.com.
// Try it today using our free PDF Viewer app: https://pdfviewer.io/
//
// This file is MIT licensed.
@protocol PSPDFFastEnumeration <NSFastEnumeration>
- (id)pspdf_enumeratedType;
@end
// Usage: foreach (s, strings) { ... }
#define foreach(element, collection) for (typeof((collection).pspdf_enumeratedType) element in (collection))
@interface NSArray <ElementType> (PSPDFFastEnumeration)
<PSPDFFastEnumeration>
- (ElementType)pspdf_enumeratedType;
@end
@interface NSSet <ElementType> (PSPDFFastEnumeration)
<PSPDFFastEnumeration>
- (ElementType)pspdf_enumeratedType;
@end
@interface NSDictionary <KeyType, ValueType> (PSPDFFastEnumeration)
<PSPDFFastEnumeration>
- (KeyType)pspdf_enumeratedType;
@end
@interface NSOrderedSet <ElementType> (PSPDFFastEnumeration)
<PSPDFFastEnumeration>
- (ElementType)pspdf_enumeratedType;
@end
@interface NSPointerArray (PSPDFFastEnumeration) <PSPDFFastEnumeration>
- (void *)pspdf_enumeratedType;
@end
@interface NSHashTable <ElementType> (PSPDFFastEnumeration)
<PSPDFFastEnumeration>
- (ElementType)pspdf_enumeratedType;
@end
@interface NSMapTable <KeyType, ValueType> (PSPDFFastEnumeration)
<PSPDFFastEnumeration>
- (KeyType)pspdf_enumeratedType;
@end
@interface NSEnumerator <ElementType> (PSPDFFastEnumeration)
<PSPDFFastEnumeration>
- (ElementType)pspdf_enumeratedType;
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment