def check_structure(self, structure, arguments=None):
        connections = structure['connections']
        actor_declarations = structure['actors']
        declared_actors = actor_declarations.keys()
        arguments = arguments or []

        # Look for missing actors
        for actor in self.undeclared_actors(connections, declared_actors):
            fmt = "Undefined actor: '{actor}'"
            lines = [c['dbg_line'] for c in connections if c['src'] == actor or c['dst'] == actor]
            for line in lines:
                self.append_error(fmt, line=line, actor=actor)

        # FIXME: Add check for actors declared more than once
        # Note: Unused actors will be caught when checking connections

        # Check if actor definition exists
        unknown_actors = self.unknown_actors(actor_declarations)
        if self.verify:
            for actor in unknown_actors:
                fmt = "Unknown actor type: '{type}'"
                self.append_error(fmt, type=actor_declarations[actor]['actor_type'], line=actor_declarations[actor]['dbg_line'])

        # Check the validity of the known actors
        known_actors = set(declared_actors) - set(unknown_actors)
        for actor in known_actors:
            definition = self.get_definition(actor_declarations[actor]['actor_type'])
            self.check_actor_connections(actor, definition, connections)
            self.check_arguments(definition, actor_declarations[actor], arguments)
Validate that the supplied email address is unique for the
dataset/ETHPy150Open EricssonResearch/calvin-base/calvin/csparser/checker.py/Checker.check_structure--crossover with--dataset/ETHPy150Open lig/django-registration-me/registration/forms.py/RegistrationFormUniqueEmail.clean_email