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 thePartialEqtrait for theChildstruct.let parent = Parent { field1: 1, field2: 2 };: This line creates an instance of theParentstruct.let child = Child::new(1, 2, 3);: This line creates an instance of theChildstruct.assert_eq!(parent, child);: This line compares the two structs and checks if they are equal.
Helpful links
Related
- How to convert struct to protobuf in Rust
- How to sort a struct in Rust
- Example of struct private field in Rust
- Example of struct with vector field in Rust
- Example of Rust struct with closure
- Example of bit field in Rust struct
- How to convert struct to bytes in Rust
- Example of struct public field in Rust
- Example of struct of structs in Rust
More of Rust
- How to replace a capture group using Rust regex?
- Regex example to match multiline string in Rust?
- How to match the end of a line in a Rust regex?
- How to sort a Rust HashMap?
- How to use 'or' in Rust regex?
- How to use regex to match a double quote in Rust?
- How to lock a Rust HashMap?
- How to use regex to match a group in Rust?
- How to create a new Rust HashMap with values?
- How to get the first value from a Rust HashMap?
See more codes...