Is there anything in mlir like struct type in llvm IR?

I want to create a data type that could store data with different basic type, just like the struct type in llvm ir. Is there anything like that in mlir ?

There isn’t anything built in I think, but MLIR let you build your own types.
Also the LLVM dialect has the same capabilities (hopefully) to what you do in LLVM IR.

The Toy tutorial has an example for defining your own Struct type.