将闭包传递给方法并存储在结构上

时间:2018-12-13 05:39:52

标签: rust closures

我正在尝试将回调传递给方法,以便我的结构稍后可以使用它,但是我得到的expected closure, found a different closure包含以下代码:

struct Struct<T>
    where T: Fn(&[u8])
{
    func: T
}

impl<T> Struct<T>
    where T: Fn(&[u8])
{
    fn set_callback(&mut self, callback: T) {
        self.func = callback;
    }
}

fn main() {
    println!("Hello, world!");

    // this works
    let mut s = Struct {
        func: |msg| {}
    };

    // this doesn't
    s.set_callback(|msg| {});
}

0 个答案:

没有答案