Peeker function for reading subclass discriminator
diff --git a/wireshark_gen/templates/_oftype_readers.lua b/wireshark_gen/templates/_oftype_readers.lua
index 9a5e4fa..e9eb9fa 100644
--- a/wireshark_gen/templates/_oftype_readers.lua
+++ b/wireshark_gen/templates/_oftype_readers.lua
@@ -51,6 +51,32 @@
     end
 end
 
+function peek_scalar(reader, subtree, field_name, length)
+    return reader.read(length):uint()
+end
+
+function peek_uint8_t(reader, version, subtree, field_name)
+    return peek_scalar(reader, subtree, field_name, 1)
+end
+
+function peek_uint16_t(reader, version, subtree, field_name)
+    return peek_scalar(reader, subtree, field_name, 2)
+end
+
+function peek_uint32_t(reader, version, subtree, field_name)
+    return peek_scalar(reader, subtree, field_name, 4)
+end
+
+function peek_uint64_t(reader, version, subtree, field_name)
+    return peek_scalar(reader, subtree, field_name, 8)
+end
+
+function peek_of_octets_t(reader, version, subtree, field_name)
+    if not reader.is_empty() then
+        return reader.peek_all()
+    end
+end
+
 function read_list_of_hello_elem_t(reader, version, subtree, field_name)
     -- TODO
 end
@@ -105,6 +131,14 @@
     end
 end
 
+function peek_of_fm_cmd_t(reader, version, subtree, field_name)
+    if version == 1 then
+        return peek_scalar(reader, subtree, field_name, 2)
+    else
+        return peek_scalar(reader, subtree, field_name, 1)
+    end
+end
+
 function read_list_of_action_t(reader, version, subtree, field_name)
     if reader.is_empty() then
         return