# Using Structs to Structure Related Data

A *struct*, or *structure*, is a custom data type that lets us name and package
together multiple related values that make up a meaningful group. If you’re
familiar with an object-oriented language, a *struct* is like an object’s data
attributes. In this chapter, we’ll compare and contrast tuples with structs,
demonstrate how to use structs, and discuss how to define methods and
associated functions to specify behavior associated with a struct’s data. The
struct and *enum* (which is discussed in Chapter 6) concepts are the building
blocks for creating new types in your program’s domain to take full advantage
of Rust’s compile time type checking.
