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
- How to convert struct to protobuf in Rust
- Example of struct with vector field in Rust
- Example of struct private field in Rust
- Example of Rust struct with closure
- How to update struct in Rust
- How to convert struct to bytes in Rust
- How to sort a struct in Rust
- How to write struct to json file in Rust
- Example of struct public field in Rust
More of Rust
- How to read JSON file in Rust
- How to get a capture group using Rust regex?
- How to use regex to match a group in Rust?
- How to replace strings using Rust regex?
- How to split a string with Rust regex?
- How to escape dots with regex in Rust?
- How to use regex lookahead in Rust?
- How to replace all matches using Rust regex?
- How do I create a variable in Rust?
- How to create enum from string in Rust
See more codes...