Rust allows structs to hold mutable references to owned data, enabling them to modify the data in-place. This requires a deep understanding of lifetimes and Rust's borrowing rules to ensure memory safety.
In this challenge, you will implement a struct named MutableTextFinder
that holds a mutable reference to a String
. This struct will allow for both searching and modifying the content of the String
.
The MutableTextFinder
struct should provide the following functionality:
new
: Creates a new instance of MutableTextFinder
with the given content.find_first
: Searches for the first line containing a given keyword and returns it as an immutable reference (Option<&str>
).replace_lines
: Replaces all lines containing a given keyword with a replacement string.get_text
: Returns the reference to the content.