Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. fn main() {
  2. println!("Hello, world!");
  3. let mut test = String::from("12345");
  4. let mut obj1 = Object {
  5. text: test.as_mut_str(),
  6. next: None,
  7. };
  8. for i in 0..5 {
  9. obj1.split_text(4 - i);
  10. if let Some(obj) = obj1.next.as_ref() {
  11. println!("{}", obj.text);
  12. }
  13. }
  14. }
  15.  
  16. struct Object<'a> {
  17. text: &'a mut str,
  18. next: Option<Box<Object<'a>>>,
  19. }
  20.  
  21. impl<'a> Object<'a> {
  22. fn split_text(&'a mut self, count: usize) {
  23. let tmp = &mut self.text;
  24. let (part1, part2) = tmp.split_at_mut(count);
  25. self.text = part1;
  26. let obj2 = Object {
  27. text: part2,
  28. next: None,
  29. };
  30. self.next = Some(Box::new(obj2));
  31. }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement