#include <cstdbool>
#include <cstdint>
#include <string>

namespace OHOS {
class MessageParcel;
}

enum FooType : int32_t {
    FOO_TYPE_ONE = 1,
    FOO_TYPE_TWO = 2,
    FOO_TYPE_NESTING = (FOO_TYPE_ONE << FOO_TYPE_TWO),
};

struct FooInfo {
    uint32_t id;
    std::string name;
    OHOS::HDI::Foo::V1_0::FooType 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);