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
- How to init zero struct in Rust
- Example of struct private field in Rust
- Example of struct of structs in Rust
- How to serialize struct to xml in Rust
- Example of Rust struct with closure
- How to set default value in Rust struct
- Rust struct without fields
- How to write struct to json file in Rust
- Example of struct with vector field in Rust
More of Rust
- How to parse JSON string in Rust?
- How to replace strings using Rust regex?
- How to compile a regex in Rust?
- 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?
- How to declare a matrix in Rust?
- How to get a value by key from JSON in Rust?
- How to convert JSON to a struct in Rust?
- How to serialize JSON in Rust?
See more codes...