1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// Copyright (c) 2017 Guillaume Pinot <texitoi(a)texitoi.eu> // // This work is free. You can redistribute it and/or modify it under // the terms of the Do What The Fuck You Want To Public License, // Version 2, as published by Sam Hocevar. See the COPYING file for // more details. extern crate clap; pub trait StructOpt { fn clap<'a, 'b>() -> clap::App<'a, 'b>; fn from_clap(clap::App) -> Self; fn from_args() -> Self where Self: Sized { Self::from_clap(Self::clap()) } }