The exercise refers to the "Data layout" section of the Rustonomicon, but now that section claims itself deprecated and redirects to the "Type layout" section of The Rust Reference.
29 lines
851 B
Rust
29 lines
851 B
Rust
pub struct Ticket {
|
|
title: String,
|
|
description: String,
|
|
status: String,
|
|
}
|
|
|
|
// TODO: based on what you learned in this section, replace `todo!()` with
|
|
// the correct **stack size** for the respective type.
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::Ticket;
|
|
use std::mem::size_of;
|
|
|
|
#[test]
|
|
fn string_size() {
|
|
assert_eq!(size_of::<String>(), todo!());
|
|
}
|
|
|
|
#[test]
|
|
fn ticket_size() {
|
|
// This is a tricky question!
|
|
// The "intuitive" answer happens to be the correct answer this time,
|
|
// but, in general, the memory layout of structs is a more complex topic.
|
|
// If you're curious, check out the "Type layout" section of The Rust Reference
|
|
// https://doc.rust-lang.org/reference/type-layout.html for more information.
|
|
assert_eq!(size_of::<Ticket>(), todo!());
|
|
}
|
|
}
|