Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::boxed::Box;
- use std::ops::Range;
- struct Schema {
- test: bool,
- testfn: Box<Fn(Range<usize>) -> String>,
- }
- impl Schema {
- fn new<F: 'static>(test_in: F) -> Self
- where F: Fn(Range<usize>) -> String
- {
- Schema{
- test: true,
- testfn: Box::new(test_in),
- }
- }
- }
- fn range_func(r: Range<usize>)->String {
- format!("range() min:{} max:{}",r.start,r.end)
- }
- fn main() {
- println!("Fn range: {}",range_func(0..7));
- let range_closure= |r: Range<usize>| {
- format!("range() min:{} max:{}",r.start,r.end)
- };
- println!("Closure: {}", range_closure(0..7));
- let schema_two = Schema::new(range_closure(0..7));
- //println!("in Box range: {}",(schema_two.testfn)());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement