Useful method to generate iterator. It is generated by chaining the given info. If no info is
		specified, then None is returned

		:param info: iterator info sequence
		:return: WMessengerOnionSessionFlowProto.Iterator or None

def sequence(cls, *info):
		""" Useful method to generate iterator. It is generated by chaining the given info. If no info is
		specified, then None is returned

		:param info: iterator info sequence
		:return: WMessengerOnionSessionFlowProto.Iterator or None
		"""
		if len(info) == 0:
			return

		info = list(info)
		info.reverse()

		result = WMessengerOnionSessionFlowProto.Iterator(
			info[0].layer_name(), **info[0].layer_args()
		)

		for i in range(1, len(info)):
			result = WMessengerOnionSessionFlowProto.Iterator(
				info[i].layer_name(), next_iterator=result, **info[i].layer_args()
			)

		return result