// summary=test::summaries::identity;Argument[0];ReturnValue;value;dfc-generated
pub fn identity(a: A) -> A {
a
}
// no summary since this function is not public.
fn identity_unexported(a: A) -> A {
a
}
pub enum Either {
Left(A),
Right(B),
}
use Either::*;
impl Either {
// summary=::new;Argument[0];ReturnValue.Field[test::summaries::Either::Right(0)];value;dfc-generated
pub fn new(b: B) -> Self {
Right(b)
}
// summary=::unwrap;Argument[self].Field[test::summaries::Either::Right(0)];ReturnValue;value;dfc-generated
pub fn unwrap(self) -> B {
match self {
Left(a) => panic!("Left cannot be unwrapped"),
Right(b) => b,
}
}
// summary=::zip;Argument[0].Field[test::summaries::Either::Left(0)];ReturnValue.Field[test::summaries::Either::Left(0)];value;dfc-generated
// summary=::zip;Argument[0].Field[test::summaries::Either::Right(0)];ReturnValue.Field[test::summaries::Either::Right(0)].Field[1];value;dfc-generated
// summary=::zip;Argument[self].Field[test::summaries::Either::Left(0)];ReturnValue.Field[test::summaries::Either::Left(0)];value;dfc-generated
// summary=::zip;Argument[self].Field[test::summaries::Either::Right(0)];ReturnValue.Field[test::summaries::Either::Right(0)].Field[0];value;dfc-generated
pub fn zip(self, other: Either) -> Either {
match (self, other) {
(Right(b), Right(d)) => Right((b, d)),
(Left(a), _) => Left(a),
(_, Left(a)) => Left(a),
}
}
}
pub struct MyStruct {
foo: i64,
bar: f64,
}
impl MyStruct {
// summary=::new;Argument[0];ReturnValue.Field[test::summaries::MyStruct::foo];value;dfc-generated
// summary=::new;Argument[1];ReturnValue.Field[test::summaries::MyStruct::bar];value;dfc-generated
pub fn new(a: i64, b: f64) -> MyStruct {
MyStruct { foo: a, bar: b }
}
// summary=::get_foo;Argument[self].Field[test::summaries::MyStruct::foo];ReturnValue;value;dfc-generated
pub fn get_foo(self) -> i64 {
match self {
MyStruct { foo, bar: _ } => foo,
}
}
// summary=::get_bar;Argument[self].Field[test::summaries::MyStruct::bar];ReturnValue;value;dfc-generated
pub fn get_bar(self) -> f64 {
match self {
MyStruct { foo: _, bar } => bar,
}
}
}
// Higher-order functions
// summary=test::summaries::apply;Argument[0];Argument[1].Parameter[0];value;dfc-generated
// summary=test::summaries::apply;Argument[1].ReturnValue;ReturnValue;value;dfc-generated
pub fn apply(n: i64, f: F) -> i64
where
F: FnOnce(i64) -> i64,
{
f(n)
}
// Flow out of mutated arguments
// summary=test::summaries::set_int;Argument[1];Argument[0].Reference;value;dfc-generated
pub fn set_int(n: &mut i64, c: i64) {
*n = c;
}
// summary=test::summaries::read_int;Argument[0].Reference;ReturnValue;value;dfc-generated
pub fn read_int(n: &mut i64) -> i64 {
*n
}