DEV Community

Cover image for Using Struct
Daniel
Daniel

Posted on

Using Struct

A struct, or structure, is a custom data type that lets you package together and name multiple related values that make up a meaningful group. Structs are similar to tuples in that both hold multiple related values, but unlike tuples, in a struct, you’ll name each piece of data so it’s clear what the values mean.
To define a struct, we enter the keyword struct and name the entire struct. A struct’s name should describe the significance of the pieces of data being grouped. Here is an example :

struct Color {
    red: u8,
    green: u8,
    blue: u8,
}
Enter fullscreen mode Exit fullscreen mode

To use a struct after we’ve defined it, we create an instance of that struct by specifying concrete values for each of the fields. We make an instance by stating the name of the structand then add curly brackets containing key: value pairs, where the keys are the names of the fields and the values are the data we want to store in those fields. Using the struct above, here is an example of an instance:

struct Color {
    red: u8,
    green: u8,
    blue: u8,
}

fn main() {
    let black = Color {
        red: 0,
        blue: 0,
        green: 0,
    };
    println!("Black = rgb({}, {}, {})", black.red, black.green, black.blue);
}

Enter fullscreen mode Exit fullscreen mode

Tuple Structs

Rust supports tuple structs, which are similar to regular structs but use unnamed fields.

struct Point(i32,i32,i32);

fn main() {
   let origin = Point(0, 0, 0);
   println!("Origin point: ({}, {}, {})", origin.0, origin.1, origin.2);
}

Enter fullscreen mode Exit fullscreen mode

Unit-Like Structs

Rust also has unit-like structs, which are useful when you need to implement a trait on some type but don’t need to store any data in it.

struct Subject;

fn main() {
   let math = Subject;
}

Enter fullscreen mode Exit fullscreen mode

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️