2024-05-13 04:21:03 +08:00
|
|
|
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,
|
2024-05-14 16:56:14 +08:00
|
|
|
// but, in general, the memory layout of structs is a more complex topic.
|
|
|
|
// If you're curious, check out the "Data layout" section of the Rustonomicon
|
|
|
|
// https://doc.rust-lang.org/nomicon/data.html for more information.
|
2024-05-13 04:21:03 +08:00
|
|
|
assert_eq!(size_of::<Ticket>(), todo!());
|
|
|
|
}
|
|
|
|
}
|