diff --git a/HTMLKit/HTMLTokenizer.h b/HTMLKit/HTMLTokenizer.h
index a4d29a7..c2c82dc 100644
--- a/HTMLKit/HTMLTokenizer.h
+++ b/HTMLKit/HTMLTokenizer.h
@@ -14,7 +14,7 @@
* HTML Tokenizer
* https://html.spec.whatwg.org/multipage/syntax.html#tokenization
*/
-@interface HTMLTokenizer : NSObject
+@interface HTMLTokenizer : NSObject
@property (nonatomic, assign) HTMLTokenizerState state;
diff --git a/HTMLKit/HTMLTokenizer.m b/HTMLKit/HTMLTokenizer.m
index ba564a9..ef41dad 100644
--- a/HTMLKit/HTMLTokenizer.m
+++ b/HTMLKit/HTMLTokenizer.m
@@ -125,6 +125,27 @@
[self switchToState:state];
}
+#pragma mark - Fast Enumeration
+
+- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(__unsafe_unretained id [])buffer count:(NSUInteger)len
+{
+ if (state->state == 0) {
+ state->mutationsPtr = &state->extra[0];
+ state->state = 1;
+ }
+
+ HTMLToken *nextToken = [self nextToken];
+
+ if (nextToken == nil) {
+ return 0;
+ }
+
+ __unsafe_unretained const id *const_ptr = (__unsafe_unretained id *)(__bridge void *)nextToken;
+ state->itemsPtr = (__typeof__(state->itemsPtr))const_ptr;
+
+ return 1;
+}
+
#pragma mark - Emits
- (void)emitToken:(HTMLToken *)token