# Copyright (c) 2017-2019 The University of Manchester
#
# This program is free software: you can redistribute it and/or modify
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import struct
from spinnman.exceptions import SpinnmanInvalidParameterException
from spinnman.messages.eieio import EIEIOType
from .abstract_data_element import AbstractDataElement

_TWO_SHORTS = struct.Struct("<HH")
_TWO_WORDS = struct.Struct("<II")

""" A data element that contains a key and a payload
"""
__slots__ = [
"_key",

self._key = key

@property
def key(self):
return self._key

@property

@property

[docs]    def get_bytestring(self, eieio_type):
raise SpinnmanInvalidParameterException(
"eieio_type", eieio_type,
"The type specifies no payload, but this element has a "