pub struct Args {Show 15 fields
pub project: String,
pub introduction: String,
pub chain: String,
pub date: String,
pub exploiter_wallet: String,
pub main_attack_contract: String,
pub token_contract: String,
pub attack_transaction: String,
pub unprotected_contract_name: String,
pub vul_contract: String,
pub tx: String,
pub number_of_attacks: String,
pub stolen_money: String,
pub way: String,
pub time: TimeUnit,
}Expand description
Attack Incident Analysis Report Generator
Fields§
§project: StringSpecify the hacked project name
introduction: StringThe hacked project introduction
chain: StringThe blockchain platform
date: StringThe date the project party stated that it was attacked;
Split by .
exploiter_wallet: StringHacker’s wallet(s);
Split by ,
main_attack_contract: StringMain attack contract(s) address;
Split by ,
token_contract: StringToken contract(s) address;
Split by ,
attack_transaction: StringAttack transaction(s);
Split by ,
unprotected_contract_name: StringVulnerability contract(s) name;
Split by ,
vul_contract: StringVulnerability contract(s) address;
Split by ,
tx: StringTransaction picture(s) path;
Split by ,
number_of_attacks: StringAttack times
stolen_money: StringAttack on Profitable Money
way: StringMain attack way
time: TimeUnitSpecify the time unit, support nanos, micros, millis, secs
Trait Implementations§
Source§impl CommandFactory for Args
impl CommandFactory for Args
Source§fn into_app_for_update<'b>() -> Command<'b>
fn into_app_for_update<'b>() -> Command<'b>
Deprecated, replaced with
CommandFactory::command_for_updateSource§impl FromArgMatches for Args
impl FromArgMatches for Args
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
Assign values from
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
Assign values from
ArgMatches to self.Source§impl Parser for Args
impl Parser for Args
Source§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
Parse from iterator, exit on error
Source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
Parse from iterator, return Err on error.
Source§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
Update from iterator, exit on error
Auto Trait Implementations§
impl Freeze for Args
impl RefUnwindSafe for Args
impl Send for Args
impl Sync for Args
impl Unpin for Args
impl UnsafeUnpin for Args
impl UnwindSafe for Args
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn into_refcell(self) -> RefCell<Self>
fn into_refcell(self) -> RefCell<Self>
Convert
value to RefCell::new(value)Source§fn into_rc_cell(self) -> Rc<Cell<Self>>
fn into_rc_cell(self) -> Rc<Cell<Self>>
Convert
value to Rc::new(Cell::new(value))Source§fn into_rc_refcell(self) -> Rc<RefCell<Self>>
fn into_rc_refcell(self) -> Rc<RefCell<Self>>
Convert
value to Rc::new(RefCell::new(value))Source§fn type_name_with_value(self) -> (&'static str, Self)
fn type_name_with_value(self) -> (&'static str, Self)
Source§fn type_size_with_value(self) -> (usize, Self)
fn type_size_with_value(self) -> (usize, Self)
Source§impl<T, R> AnyExt1<R> for T
impl<T, R> AnyExt1<R> for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, R> Op<R> for T
impl<T, R> Op<R> for T
Source§fn add_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Add,
fn add_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Add,
The continuation supporting for Add operator Read more
Source§fn sub_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Sub,
fn sub_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Sub,
The continuation supporting for Sub operator Read more
Source§fn mul_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Mul,
fn mul_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Mul,
The continuation supporting for Mul operator Read more
Source§fn div_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Div,
fn div_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Div,
The continuation supporting for Div operator Read more
Source§fn rem_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Rem,
fn rem_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Rem,
The continuation supporting for Rem operator Read more
Source§fn neg_c(self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Neg,
fn neg_c(self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Neg,
The continuation supporting for Neg operator
Source§fn not_c(self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Not,
fn not_c(self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Not,
The continuation supporting for Not operator
Source§fn shl_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Shl,
fn shl_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Shl,
The continuation supporting for Shl operator
Source§fn shr_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Shr,
fn shr_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: Shr,
The continuation supporting for Shr operator
Source§fn bit_and_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: BitAnd,
fn bit_and_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: BitAnd,
The continuation supporting for BitAnd operator
Source§fn bit_or_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: BitOr,
fn bit_or_c(self, other: Self, k: impl FnOnce(Self::Output) -> R) -> Rwhere
Self: BitOr,
The continuation supporting for BitOr operator
Source§impl<T, R> Pipe<R> for Twhere
T: ?Sized,
impl<T, R> Pipe<R> for Twhere
T: ?Sized,
Source§fn pipe(self, f: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe(self, f: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a>(&'a self, f: impl FnOnce(&'a Self) -> R) -> R
fn pipe_ref<'a>(&'a self, f: impl FnOnce(&'a Self) -> R) -> R
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_mut<'a>(&'a mut self, f: impl FnOnce(&'a mut Self) -> R) -> R
fn pipe_mut<'a>(&'a mut self, f: impl FnOnce(&'a mut Self) -> R) -> R
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B>(&'a self, f: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B>(&'a self, f: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B>(&'a mut self, f: impl FnOnce(&'a mut B) -> R) -> R
fn pipe_borrow_mut<'a, B>(&'a mut self, f: impl FnOnce(&'a mut B) -> R) -> R
Source§fn pipe_as_ref<'a, U>(&'a self, f: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U>(&'a self, f: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U>(&'a mut self, f: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U>(&'a mut self, f: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T>(&'a self, f: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T>(&'a self, f: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> StdAnyExt for T
impl<T> StdAnyExt for T
Source§fn into_mutex(self) -> Mutex<Self>
fn into_mutex(self) -> Mutex<Self>
Convert
value to Mutex::new(value)Source§fn into_arc_mutex(self) -> Arc<Mutex<Self>>
fn into_arc_mutex(self) -> Arc<Mutex<Self>>
Convert
value to Arc::new(Mutex::new(value))Source§fn into_rwlock(self) -> RwLock<Self>
fn into_rwlock(self) -> RwLock<Self>
Convert
value to RwLock::new(value)Source§fn into_arc_rwlock(self) -> Arc<RwLock<Self>>
fn into_arc_rwlock(self) -> Arc<RwLock<Self>>
Convert
value to Arc::new(RwLock::new(value))Source§impl<T, R> StdAnyExt1<R> for T
impl<T, R> StdAnyExt1<R> for T
Source§fn ext_measure_time(self, f: impl FnOnce(Self) -> R) -> Duration
fn ext_measure_time(self, f: impl FnOnce(Self) -> R) -> Duration
Executes the given closure block and returns the duration of elapsed time interval.
Source§fn ext_measure_time_with_value(self, f: impl FnOnce(Self) -> R) -> (Duration, R)
fn ext_measure_time_with_value(self, f: impl FnOnce(Self) -> R) -> (Duration, R)
Executes the given closure block,
returns the duration of elapsed time interval and the result of the closure execution.
Source§fn ext_measure_time_with_self(
self,
f: impl FnOnce(&Self) -> R,
) -> (Duration, Self)
fn ext_measure_time_with_self( self, f: impl FnOnce(&Self) -> R, ) -> (Duration, Self)
Executes the given closure block,
returns the duration of elapsed time interval and the receiver
self.Source§fn ext_measure_time_with_mut_self(
self,
f: impl FnOnce(&mut Self) -> R,
) -> (Duration, Self)
fn ext_measure_time_with_mut_self( self, f: impl FnOnce(&mut Self) -> R, ) -> (Duration, Self)
Executes the given closure block,
returns the duration of elapsed time interval and the receiver
self.Source§impl<T, R> Tap<R> for T
impl<T, R> Tap<R> for T
Source§fn tap_mut(self, f: impl FnOnce(&mut Self) -> Ret) -> Self
fn tap_mut(self, f: impl FnOnce(&mut Self) -> Ret) -> Self
Mutable access to a value. Read more
Source§fn tap_borrow<B>(self, f: impl FnOnce(&B) -> Ret) -> Self
fn tap_borrow<B>(self, f: impl FnOnce(&B) -> Ret) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, f: impl FnOnce(&mut B) -> Ret) -> Self
fn tap_borrow_mut<B>(self, f: impl FnOnce(&mut B) -> Ret) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_as_ref<R>(self, f: impl FnOnce(&R) -> Ret) -> Self
fn tap_as_ref<R>(self, f: impl FnOnce(&R) -> Ret) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_as_mut<R>(self, f: impl FnOnce(&mut R) -> Ret) -> Self
fn tap_as_mut<R>(self, f: impl FnOnce(&mut R) -> Ret) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, f: impl FnOnce(&T) -> Ret) -> Self
fn tap_deref<T>(self, f: impl FnOnce(&T) -> Ret) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, f: impl FnOnce(&mut T) -> Ret) -> Self
fn tap_deref_mut<T>(self, f: impl FnOnce(&mut T) -> Ret) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, f: impl FnOnce(&Self) -> Ret) -> Self
fn tap_dbg(self, f: impl FnOnce(&Self) -> Ret) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, f: impl FnOnce(&mut Self) -> Ret) -> Self
fn tap_mut_dbg(self, f: impl FnOnce(&mut Self) -> Ret) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, f: impl FnOnce(&B) -> Ret) -> Self
fn tap_borrow_dbg<B>(self, f: impl FnOnce(&B) -> Ret) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, f: impl FnOnce(&mut B) -> Ret) -> Self
fn tap_borrow_mut_dbg<B>(self, f: impl FnOnce(&mut B) -> Ret) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_as_ref_dbg<R>(self, f: impl FnOnce(&R) -> Ret) -> Self
fn tap_as_ref_dbg<R>(self, f: impl FnOnce(&R) -> Ret) -> Self
Calls
.tap_as_ref() only in debug builds, and is erased in release
builds.Source§fn tap_as_mut_dbg<R>(self, f: impl FnOnce(&mut R) -> Ret) -> Self
fn tap_as_mut_dbg<R>(self, f: impl FnOnce(&mut R) -> Ret) -> Self
Calls
.tap_as_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, f: impl FnOnce(&T) -> Ret) -> Self
fn tap_deref_dbg<T>(self, f: impl FnOnce(&T) -> Ret) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.