Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Debug)]
- pub struct Context {
- pub name: String
- }
- impl Context {
- pub fn new(string: &str) -> Context {
- Context {
- name: String::from(string)
- }
- }
- }
- #[derive(Debug)]
- pub struct Data<'a> {
- pub data: Vec<f32>,
- pub context: &'a mut Context
- }
- impl<'a> Data<'a> {
- pub fn new(context: &'a mut Context) -> Data<'a> {
- Data {
- data: Vec::new(),
- context
- }
- }
- pub fn from_slice(data: &[f32], context: &'a mut Context) -> Data<'a> {
- Data {
- data: data.to_vec(),
- context
- }
- }
- pub fn clear(&mut self) {
- self.data = Vec::new()
- }
- }
- fn push_more(d: &mut Data) {
- d.data.push(3.0);
- }
- fn main() {
- let mut context = Context::new("my context");
- let mut d = Data::from_slice(&[1.0, 2.0, 3.0], &mut context);
- d.clear();
- d.data.push(1.0);
- d.data.push(2.0);
- d.context.name.push_str("!");
- push_more(&mut d);
- println!("{:?}", d);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement