namespace OHOS {
class MessageParcel;
}

using namespace OHOS;

enum FooType : int32_t {
    FOO_TYPE_ONE = 1,
    FOO_TYPE_TWO = 2,
};

enum FooType2 : int32_t {
    FOO_TYPE_ONE = 1,
    FOO_TYPE_TWO = 2,
    FOO_TYPE_THREE = 3,
    FOO_TYPE_FOUR = 4,
};

struct FooInfo {
    uint32_t id;
    std::string name;
    OHOS::HDI::Foo::V1_0::FooType2 type;
};

bool FooInfoBlockMarshalling(OHOS::MessageParcel &data, const OHOS::HDI::Foo::V1_0::FooInfo& dataBlock);

bool FooInfoBlockUnmarshalling(OHOS::MessageParcel &data, OHOS::HDI::Foo::V1_0::FooInfo& dataBlock);