'Parse the string given by \'s\' into a structure object.'

@classmethod
def from_string(cls, s):

    if ((len(s) < 1) or (s[0] != cls.SIGIL)):
        raise SynapseError(400, ("Expected    %s    string    to    start    with    '%s'" % (cls.__name__, cls.SIGIL)))
    parts = s[1:].split(':', 1)
    if (len(parts) != 2):
        raise SynapseError(400, ("Expected    %s    of    the    form    '%slocalname:domain'" % (cls.__name__, cls.SIGIL)))
    domain = parts[1]
    return cls(localpart=parts[0], domain=domain)
