rustHow to extend struct from another struct in Rust
Structs in Rust can be extended from another struct using the #[derive(PartialEq)]
annotation. This allows the struct to inherit the fields and methods of the parent struct.
Example
#[derive(PartialEq)]
struct Parent {
field1: i32,
field2: i32,
}
struct Child {
field3: i32,
}
impl Child : PartialEq {
fn new(field1: i32, field2: i32, field3: i32) -> Child {
Child {
field1: field1,
field2: field2,
field3: field3,
}
}
}
let parent = Parent { field1: 1, field2: 2 };
let child = Child::new(1, 2, 3);
assert_eq!(parent, child);
Output example
assertion successful
Code explanation
#[derive(PartialEq)]
: This annotation allows the struct to inherit the fields and methods of the parent struct.impl Child : PartialEq
: This line implements thePartialEq
trait for theChild
struct.let parent = Parent { field1: 1, field2: 2 };
: This line creates an instance of theParent
struct.let child = Child::new(1, 2, 3);
: This line creates an instance of theChild
struct.assert_eq!(parent, child);
: This line compares the two structs and checks if they are equal.
Helpful links
Related
- Example of struct private field in Rust
- Example of Rust struct with closure
- How to get struct value in Rust
- Rust struct without fields
- Example of struct with vector field in Rust
- How to update struct in Rust
- Example of struct public field in Rust
- Example of struct of structs in Rust
- How to serialize struct to json in Rust
More of Rust
- How to replace a capture group using Rust regex?
- How do I create an array of strings in Rust?
- How to replace all matches using Rust regex?
- How to use non-capturing groups in Rust regex?
- How to get a capture group using Rust regex?
- How to match the end of a line in a Rust regex?
- How to split a string with Rust regex?
- How to use regex to match a double quote in Rust?
- How to use regex with bytes in Rust?
- How to calculate the inverse of a matrix in Rust?
See more codes...