►
From YouTube: Rust Meetup March 2022
Description
Ivan Tham will be giving a talk about traits (and static dispatch and dynamic dispatch).
A
A
A
I'll
be
doing
some
news
on
russ
what
happened
before
before
this
and
yeah.
So
since
the
last
meetup
there
is,
they
announced
russ
1.59,
and
the
interesting
thing
is
that
they
released
the
inline
assembly.
A
So
it's
stabilized
now
and
you
can
you
can
do
the
inline
inline
assembly
with
the
using
the
macro
asm
macro,
and
you
can
also
do
the
destructuring
assignments
previously.
You
can
only
do
you
can
can
do
the
structuring,
but
you
need
to
put
that
in
the
front,
but
now
you
can
assign
you
can
assign
to
the
values
here.
A
A
A
As
part
of
it
originally,
the
plan
was
to
talk
about
raspberries
and
static,
dynamic
dispatch,
but
I
think
just
frustrating
enough
will
be
will
be
enough
and
the
examples
on
the
slides
given
below
will
be
structured
in
the
story
form
to
show
like
why
and
how
why?
Why
is
there
rush
trades,
that's
just
based
on
my
own,
based
on
my
own
findings
and
some
I
just
took
from
the
rust
book
and
some
other
referrals
like
rfc.
A
So
what
was
wrong
trade
roast
rate
is
like
similar
to
like
the
class
and
something
not
not
very
similar.
But
it's
something
like
that
and
you
can.
You
can
know
easily
in
chinese
a
mandarin,
you
call
person
and
it's
like
characteristic
like
so
it
describes
how
it
describes
how
something
behaves
the
the
word
in
english
if
they
call
it,
but
it's
less
commonly
used.
A
So
the
transfer
is
easier
to
understand
the
equal
person
and
you
can
also
consider
it
as
part
of
op
or
p
is
object,
oriented
programming,
but
in
this
case
trade
don't
do
the
inheritance,
it
does
composition,
inheritance
inside
you
have
one
eye.
You
have
one
one
class
inherit
from
another
class
and
it
inherits
all
the
data.
But
composition
is
more
like
you
only
have
you
only
define
the
functions
it
have
and
you
can?
A
A
So
is
that
inside
the
public
behavior
of
how
how
that
function,
interacts
with
other
functions
and
for
raspberry
is
also
integrated
with
the
rest
of
the
system
like
unsafe,
generate
lifetime
type
inference
we
might
go
with.
We
might
discuss
a
few
of
this
within
the
talk
and
trade
must
be
in
scope
to
be
able
to
cause
method
it
just
it's
just
one
of
the
behavior
of
fresh
trade
such
that.
If
the,
if
the
trade
is
out
of
scope,
then
you
can't
already
call
it
later
we'll
talk
about
that.
A
So
right,
let's,
let's
talk
about
why
our
trades
needed
so
there's
a
story
and
of
two
of
concepts
of
opposing
forces,
and
one
is
called
genius
called
young
thing.
There
are
so
called
material
energy,
so
there's
one
structure
called
yin
and
one
structure
called
so.
This
is
called
a
unit
struct
in
in
rust,
where
it's
also
it's
a
unit,
and
it's
also
struck,
so
you
can
think
of
it.
A
A
Is
like
a
lot
of
synthetic
sugar,
but
in
means
that
gene
have
a
these
are
all
methods
under
yin,
so
in
has
its
light
function,
so
this
is
called
method,
so
this
function
will
output
a
boolean
false.
So
if
you
do
in
column,
column
is
like,
then
it
will
return
false,
and
so
this
is
return,
but
for
those
not
familiar
the
last
item
in
the
last
item
inside
the
block
like
this
is
the
block.
A
So
the
last
item
inside
will
be
the
return
or
we
need
any
expression.
Basically,
the
last
item
will
return
out
of
the
scope,
so
this
will
be
written
out
of
the
function.
So
this
this
will
be
written
false
and
this
will
be
written
through.
So
young
is
like
is
true
and,
and
then
there
comes,
then
you
have
you
need
to.
You
need
to
do
a
function
to
create
a
function
to
check.
If
an
item
is
like
so
okay,
so
then
we
do
it
slide
and
what
this
is
a
function.
A
Defense
is
a
function
and
this
parameter
is
like
this
is
just
the
variable
name.
I
just
keep,
I
just
add,
underscore
in
front
to
silent
the
compiler
and
I'm
here
fn
bull
means
this
is
a
variable
of
a
function
with
no
with
no,
I
no
arguments
and
returns
a
bull.
So
basically
the
same.
You
see
you
see
basically
the
same
thing
here,
but
impl
here
means
something
that
in
something
that
implements
this
and
it
returns
nothing.
Basically,
it's
nothing
here,
so
you
can
think
of
it's
like
a
generic
function
or
something
like
that.
A
But
this
is
not
it's
not
it's
not
there's
no
generics
involved
here
then,
when
you
run
so
invest
you
when
you
want
to
run
something
you
need
to
put
fn
main.
This
will
be
the
function
you
write
so
like.
If
so,
this
will
be
the
function
run
in
in
the
file.
Then
it's
like
so
this.
This
works
this
compiles
and
as
we
know,
everything
will
change,
and
now
we
have,
we
need
to
have
another
function.
A
Chord
is
one
just
now
we
have
it's
like
so
means
that
got
the
light,
and
then
now
we
have
another
function
is
one
and
then
we
implement
the
same
thing
as
we
know
you.
If,
if
you
know
about
this,
you
might
have
heard
is
one
in
is
zero.
That's
what
I
heard
so
I
put
zero
false
and
yang
is
one
true.
Okay,.
A
And
then
oh,
and
we
have
to
create
another
function,
this
one
here
this
one,
then
we
need
to
do
this.
You'll
notice,
that
if
we
do
this
right,
can
we
it's
very
hard
to
differentiate
in
I'm
pl
fm
bo
is
very
hard
to
differentiate
this
and
this.
So
it's
one
that
I
passing
in
is
one,
but
I
could
have
passed
in.
Yin
is
like
if
I,
if
by
passing
yin,
is
like
it's
false.
A
So
as
as
we
notice
that,
if,
if
if
the
function
becomes
more
complicated,
but
if
we
right
now,
we
need
to
have
a
more
complicated
function
that
takes
in
both
both
the
previous
function.
Let's
say
we
have
a
function
that
ecm
and
the
first
parameter
is
whether
or
not
it
gets
a
it
gets
a
function
that
returns,
whether
it's
light
or
not,
and
another
is
a
function.
Two
returns
is
one
another,
so
we
need
to
put
it
young.
A
A
A
So
why
is
trades
for
trace
is
to
define
the
shared
behavior
like
the,
so
both
of
them
can
be
grouped
under
something
we
can
call
it
energy,
so
the
energy
have
the
we
can
give
define
or
energy
must
have
these
two
functions.
One
function
is
a
slide,
and
another
function
is
one
so,
but
you'll
notice
that
it's
a
bit
different
because
for
a
trade
we
must
always
put
in
the
we
must
always
put
in
this.
The
first
parameter
itself.
A
Energy,
basically,
basically,
this
is
a
significant
sugar
for
this.
Basically,
these
two
is
the
same
thing.
Don't
worry
about
don't
if,
for
those
new
to
rats,
don't
worry
about
ampersand,
it
means
getting
the
reference,
so
it
means
we
won't
be
discussing
about
the
ownership
and
reverse.
We
discuss
it
previously
now
so
now
we
won't
be
discussing
about
this,
so
this
is
just
a
reference.
You
will
take
a
reference
of
energy
and
return.
This.
A
And
then
so
now,
instead
of
instead
of
impl
yin,
we
can
say
impl
energy
for
yin,
so
the
we
are
implementing
this
trade
energy.
We
are.
We
are
implementing
this
trade
energy
for
yin,
so
we
need
to
put
in
all
the
items
all
the
methods
within
energy.
So
if
you
see
I'm
pl
something
it
mean
for
something,
it
means
that
the
the
item
will
contain
all
the
methods
within
this
trade.
So
in
this
case
it
have
is
like,
and
it
will
have
also
is
one
I'll
say
I
simplify.
A
A
Just
now,
we
need
to
pass
in
two
parameter,
but
in
this
case
we
just
pass
in
energy
and
then
something
that
implements
this
energy
because
it
implements
the
trait
so
so,
because
yin
implements
the
energy
yeah
because
it
implements
the
energy,
so
you
can
call
directly.
You
can
call
energy
dot
is
like
waiting
here,
because
the
energy
is
energy
is
here
and
is
within
the
within
the
crate,
so
you
can
call
it.
So
this
is
how
how
you
want
to
guarantee
that
something
how
you
want
to
do
the
shared
behavior.
A
So
you,
if
you,
if
you
have
multiple
items
that
have
the
same
behavior
you
can
implement,
you
can
implement
it
as
a
trade,
but
sometimes
you
also
one
need
to
split
into
multiple
trades.
So
a
single
item
could
have
different
behavior
because
things
change.
Sometimes
you
need
to
create
new
trades
yeah.
So
this
is
trades.
A
A
You
can
only
implement
the
methods
for
that
type
within
the
crate
that
you
own,
you
can't
do
it
for
other
people
like
you,
you
cannot
just
go
in
and
modify
other
people
called
like
monkey
patching
or
something
like
that.
You
can't
you
can't
do
that
because,
like
if
someone,
if
you,
if
you
have
a
library,
someone
just
patched
another
library
for
you,
then
that
will
be
very
confusing
so
nice.
Does
it
allow
that
so
the
trade
you
can
already
change
within
your
trade
stuff?
A
Let's
say
you
have,
let's
see
right
as
the
iterator
trade
yeah,
you
want
to
extend
it
more
stuff.
Also.
This
is
also
known,
as
extension,
trade,
to
extend
another
trade.
For
example.
We
want
to
extend
the
full
trade
from
full
credit.
You
see
here.
We
have
another
call
fool,
so
we
will
import
this
function.
We
use
it.
A
A
A
Okay,
sorry,
sorry,
please,
now
trade
with
a
truck,
so
you
can
implement.
You
can
implement
the
extension
you
just
define
in
your
crate
to
that,
to
to
the
struct
and
and
then,
when
you,
when
you
use
the
full
right,
you
can
use
the
full
inside
the
other
module
inside
the
other
file.
You
have.
You
can
just
use
this,
so
you
import
full
ext
and
then
you
can
start
using
the
new
new
items.
A
A
Okay,
nevermind:
let's
I
continue.
I
increased
my
volume
already
now,
so
the
next
is
default
implementation
from
the
previous
energy
example.
We
only
see
the
methods
define
the
implementation,
so
we
only
see
just
now.
We
only
see
it
matters
in
the
information,
but
now,
but
what
if
we
want
to
have
a
helper
in
a
trades
that
depends
on
another
method.
A
So
this
example
we
will
have
a
function
depends
on
each
other.
We
will
see,
but
I'll
give
you
the
rough
one.
First,
it's
not
the
so
we
now
we
have
a
trade
called
jumpable
and
there
are
two
methods:
one
is
called
jump
and
then
one
is
called
double
jump,
so
we
have
a
struct
homo,
sapien,
homosexual
and
basically
human
scientific
term.
So
we
have
got
a
name.
A
Let's
then,
we
create
the
first
function,
jump
and
then
you'll
print
I
jump.
But
then
you
want
to
do
another
function,
double
jump,
then
you,
basically
you
want
to
run
the
same
function
twice
right.
Then
you
just
run
it
twice,
but
yeah
you
just
imagine.
If
we
have
10
strap,
then
we
need
to
do
this
10
times
you
do
a
double
jump,
double
jump,
double
jump
and
then
inside
double
jump.
We
need
to
run
the
self.jump
twice.
A
A
So
you
see,
this
is
the
last
class
iterator
documentation
and
then,
if
you
see
look
at
the
methods-
and
you
see
a
lot
of
it
is
implemented,
this
is
this
required
methods
basically
means
that
that's
the
only
required
method
that
you
need
to
implement.
There
are
many
other
methods
you
see.
There
are
many
other
methods,
but
you
see
that
they
have
a
default
implementation.
Only
this
one,
you
implement
one
thing
that
everything
else
is
done
for
you.
A
And
let's
switch
it
yeah,
so
the
default
implementation-
you
just
do
this
here
and
there
you
can
call
the
other
stuff
you
define
in
the
same
trade.
Basically
you'll
do
this
and
then
you'll
define
the
struct.
You
just
implement
you
just
implement.
When
you
implement
jumpable,
you
just
implement
a
jump,
then
you
don't
need
to
implement
the
double
jump.
Then
you
can
you
can
you
can
use
the,
but
in
other
in
when
you,
when
you
do
homozygous,
then
you
can
just
run
double
jump
like
normal
and
then,
when
you
run
double
jump
you
do
this.
A
A
A
A
Let's
say
we
have
a
function
that
returns
one
item
or
the
other,
so
we
have
when
we
have
function
called
rand.
Basically,
it
is
not
ran
it's
random.
It's
not
random
enough.
It's
just
true,
but
the
first
part
first
argument
is
the
x.
Is
your
size,
your
size
is
us
in
russ
means
unsigned
in
unsigned
integer,
but
of
the
machine
size
this
basically
like
uint
and
c
the
unsigned
integer
size,
but
based
on
your
machine.
So
if
your
machine
is
64
bit,
you'll
get
a
60
you'll
get
a
64
bit
in
heat.
A
A
A
A
But
people
should
do
something
like
that,
so
people
will
do
like
templating,
so
we'll
copy
copy
the
code
and
then
paste
it
one
version
and
then
copy
the
code
and
then
we'll
share
and
place
another
version.
And
then
this
one
will
be
so
people
prefix
this
with
issue.
What
what
people
do
for
the
language
they
don't
have
generis.
So
they
will
just
do
another
function
themselves.
They'll
manually
duplicate
the
code
and
do
this.
A
A
A
So
basically,
generics
hit
is
to
do
this,
so
you
can
say
for
ran
for
anything.
The
type
t,
so
you
have
a
generic
of
type
t
and
then
so
x
is
of
type
key
and
y
is
of
type
t,
and
it
return.
Type
t
means
that
your
argument,
the
first
argument
type
and
the
second
argument
type-
must
be
the
same
as
the
return
type
in
this
case.
A
Okay.
Let's
now,
let's
get
back
to
trade
down,
so
we
learned
about
the
generics
and
why
generics
is
required.
B
A
A
A
A
So
people
start
doing
this,
people
duplicate
the
function
name
and
then
add
add
stuff
to
the
function
name,
so
it
will
start
compiling
because
the
function
name
is
different
and
people
for
different
type
people
use
different
function
and
generics
we
can
with
generics.
We
can
do
this,
we
can
just
run.
We
can
just
have
a
same
one
function,
but
it
can.
It
can
do
multiple
items.
A
Okay,
let's
get
back
to
trade
balance,
so
we
learned
about
generics
and
now
the
we
have
a
trade
imper,
because
we
just
now
we
learn
about
the
trade
in
parameter.
We
we
won't
work
like
if
you
want
to
do
the
same
example
just
now.
This
one
won't
work
here,
because
if
we
do
something
that
implements
a
trade
call
for-
and
we
have
another
thing
that
implements
a
trade
called
foo,
but
we
return
something
called
foo.
A
A
A
So
for
this
you
can
guarantee
that
the
function
implements
the
full
trade
so
inside
here
you
can
use
the
you
can
use
whatever
method
defined
in
full,
so
you
can
like,
let's
say
four,
have
a
dot
bar,
so
you
can
use
dot
bar
here
the
bar
method.
You
can
also
do
more
generic.
You
can
also
add
more
stuff
here
like
this,
or
you
can
also
depend.
You
can
also
make
one
generic.
A
A
A
A
A
A
A
You
also
have
this
item
and
and
then
another
variable
have
a
method
called
autorun,
so
it
will
run
yeah
with
the
with
the
hands
behind
two
hands
behind
like
one
and
I
will
go
then
so
now
we
create
another
functional
goal
and
it
is
that
takes
in
a
parameter,
the
agreement,
human,
the
implements
now
auto
runnable.
So
you
basically
have
this
auto
run
here
now
we
do
the
same.
We
have
a
struct
naruto
how
how
to
how
to
have
something
that
is
this.
A
To
have
this,
we
need
to
implement
runnable
for
naruto.
You
notice.
We
don't
need
anything
here,
because
we
already
do
a
default
here.
That
does
nothing
and
we
implement
now
to
run
also
but
yeah.
If
you
don't
implement
this,
then
russ
have
an
error
saying
that
you
can't
you
can't
implement
this
for
another
because
it
doesn't
implement
this.
So
it's
like
a
dependency
to
get
this.
You
might.
You
must
have
this.
A
This
is
use
for
what
you
call.
This
is
used
for
the
this
there's
a
rash
trick
called
copy
and
there's
two
straight
copy
and
cone
from
what
I
remember.
The
the
copy
will
have
stuff
in
code
as
well.
So
copy
is
a
super
trade
of
code.
If
put
more,
you
can
put
more
stuff
here
so
because
this
is
here
to
type
it
up.
A
A
But
if
you
want
to
use
it
is
it's
quite
inconvenient
because
we,
if
you
got
to
do
generics
for
it,
it's
quite
inconvenient,
because
we
need
to
write
out
like
so
many
types
you
do
so
many
g
right
here,
like
we
want
to
do
g
is
graph
and
e.
Yes,
these
two
needs
to
be
the
same.
You
see
the
n
needs
to
be
the
same.
A
A
So
you
specify
this,
and
if
we
we
can't,
we
can't
just
put
n
here
because
it
won't
like,
because
you
can't
have
it
hanging
by
itself.
So
you
need
to
define
n
here
as
well,
so
we
need
to
define,
there's
a
j
right,
called
n
and
a
general
called
e
and,
and
that
is
j
and
then
there's
a
g
which
is
which,
which
is
bounded
by
remember
this,
is
a
trade
bound.
The
j
is
bounded
by
graph
with
parameter
n
is
the
first
generate
here.
A
N
and
e
is
the
second
generator
here
e
and
you'll
notice.
It's
quite
it'll,
get
a
bit
more
you'll
get
harder
to
rate,
as
this
goes
on
so
the
first,
so
the
first
parameter
for
this
distance
is
graph
which
is
taking
a
reference
of
g,
which
is
a
graph.
Second
parameter
is
n.
The
start.
N
is
also
node,
so
you
can
see
here.
The
n
all
is
the
same,
always
the
same
same
type
yeah.
This
also
take
a
reference
start
and
end
as
well,
so
it
will
return.
A
A
It
means
that
the
we
have
now
we
have
an
item.
We
have
a
type
that
is
associated
to
the
trade
see
so
the
graph
will
always
have
a
type
n
and
will
always
have
a
type
e
but
yeah.
Now
we
now
we
lose
the
now
we
lose
the
j
ray.
This
is
no
longer
generic,
because
now
one
graph
is
only,
it
must
be
associated
with
only
one
type
and
one
type
node,
one
node
type
and
one
edge
type.
A
So
you
can't
do
if
you
want
to
use
the
if
you
want
to
implement
the
graph
for
something
the
you
can
only
implement
one
graph
now
and
if
you
implement
one
graph,
then
you
can
have
the
n
and
e
here
as
specified
when
during
implement.
So
when
you
implement
you
just
need
to
put
out
the
type
n
equals
to
what
you
want,
what
the
type
you
want
to
be.
A
A
A
A
A
A
So,
as
you
can
see,
this
is
an
example
of
git.
There's
a
live,
so
we
have
a
type,
but
this
type
now
have
a
generic.
It's
not
possible.
Now,
I'm
not
sure
whether
it
is
possible,
but
the
jlt
is
partially
stabilized,
so
not
all
of
the
stuff
within
the
generic
associated
type
can
be
can
be
done
before
I
recall,
so
what
it
looks
like
you
can
specify.
Basically,
this
is
a
lifetime.
A
A
So
when
do
we
use
one
or
the
other,
and
if
you
see
associated
types
are
used
like
when
there's
only
one
impl,
let's
say:
there's
an
iterator,
the
trade
iterator.
This
is
in
raw
standard
library,
so
iterator
this
so
iterator
is
the
trick
to
the
a
trick
to
say
how
how
the
structure
will
iterate
over
something.
A
So
in
this
case
you
have
a
type
item.
So
this
type
item
means
that
when
you
call
next
on
the
iterator
so
means
you
get
next
item
on
the
iterator
here.
We
turn
you
this
item,
so
you,
as
you
can
see,
iterator
can
only
have
exactly
one
item
type.
Otherwise
it
will
be
confusing,
like
you
have
the
same
iterator.
But
then,
when
you
get
the
next
value,
you
suddenly
get
a
different
iterator.
That's
why
it
is
implemented
as
associated
type
and
not
generate
time.
A
So
it
cannot
be
generic
because
you
want
to
you
want
to
have
exactly
one
item
like
when
you
iterate
a
word
when
you
iterate
over
a
string,
you
want
to
iterate
over
each
character's
of
within
a
string.
Then
you
get
what
character
first,
character,
second
character:
the
character
not
like
you
get
first
character,
then
suddenly,
the
next
item
you
get
one
bite,
then
it
will
be
confusing.
A
A
It
means
that
this
this
this
thing
can
be
derived
from
an
iterator
of
the
generic
a
so
you
can.
You
can
have
so
you
can
have
from
from
iterator
where
the
key
is
the
generic
and
then
there's
about.
Basically,
the
right
here
is
similar
to
the
trade
down
you
see
just
now.
Just
that
is
it's
a
bit.
It's
a
different
syntax
and
you
can
put
more
stuff
within
here.
You
can
like
go
next
line
next
line
with
a
different
with
a
different
trick
bound.
A
A
So
we
also
have
another
example
borrow
which
is
easier
to
understand,
but
I
showed
this
example,
because
we-
because
we
have
never
seen
this
so
what
this
formulator
does
is
it
will
take
in
and
you
have
general
a,
and
here
we
have
something
that
have
iterator
with.
So
if,
for
anything,
this
t
is
anything
that
implements
into
iterator
with
the
associated
type
of
item
is
a
so
for
this.
Basically,
it
means
that
anything
that
have
that
implements
the
into
a
iterator
internal
function.
It
is
just
basically
doing
the
reverse.
A
It
just
reversing
the
into
iterator
but
yeah
for
those
that
that
it's
not
very
familiar
express
the
into
iterator.
Is
you
you
can
make
something
an
iterator,
because
this
is
iterator,
but
integrator
is
something
that
you
can
it's
a
trade
that
say
you
can
you
can
convert
that
you
can
convert
that
item.
You
have
the
struct
or
enum
or
something
and
convert
it
into
an
iterator.
That's
basically
it
and
from
iterator
is
similar.
You
just
convert
it
back.
A
A
So
there's
a
trade
called
ad.
It
was
there's,
add
trade
because,
like
you
can
you
can
you
can
have?
Let's
say
you
have
custom
type,
you
can
just
implement
the
add
trade.
Then
you
can
add
two
custom
type
together.
Let's
say
you
have
you
have
a
duration,
you
have
a
type
duration
type
and
you
have
another
duration
type.
Then
you
can
add
them
together.
Then
it
will
become
a
duration
type.
A
A
A
Okay,
no,
no
use
duration,
confusion.
You
can't
really
add
a
time
state
time
so
you'll
add
duration.
By
default.
You
see
just
now.
We
have
a
self
here
and
basically
this
means
duration
by
default.
But
we
don't
have
to
receive
this
because
that's
a
default
value
default
to
this,
so
it
defaults
to
iteration
and
then
the
and
then
the
function,
the
output,
if
we
add
direction
with
duration
or
we
become,
it
will
become
a
duration
and
we
have
add
function.
We
must
implement
this.
A
A
So
the
right
hand
side
is
right
hand.
Side
is.
A
A
A
For
duration,
so
you
can
do
this.
This
will
work
because
it's
a
different
trade
by
default
is
a
duration,
so
you'll
notice
that
these
two
different
trade
it
work
because
it
implements
two
different
stuff,
one
is
add
size.
Add
duration
y
is
at
date
time,
so
the
type
output
the
output
should
be
that
time
because,
once
you
add
the
duration,
it
will
be
another
time.
Also.
A
A
A
A
And
then
so
now
you
can
have
you
can
do
this
duration,
a
plus
the
time
b?
This
should
work
with
if
this
implementation,
but
yeah
you
can't
you
can't
do
this,
you
can't
do
you
can't
do
with
that.
You
can't
do
that
time,
b,
plus
duration,
a
you
can't
do
because,
because
you
add
the
right
hand,
side
mass,
the
duration,
you
add
to
right
hand.
Side
must
be
that
time.
A
A
A
A
A
So,
although
draft
is
this,
so
does
ambiguity,
let's
say
you
have
a
trade
pilot
called
fly
and
then
you
have
another
trade
wizard
also
have
a
method
called
method
fly.
Now
we
have
a
strong
human
so
for
human,
your
impairment
pilot
and
your
impairment.
Wizard,
you
see,
there's
only
there's
only
fly
here.
A
A
A
A
A
A
A
A
Now
you
are
using
the
you
are
using
the
type
called
the
type
is
not
as
animal,
so
you
run
the
animal
animal
within
the
type.
So
you
run
this
baby
name,
so
you
can
you
can
you
can
know
okay
which
a
which
trade
within
that
type
is
being
used
to
to
specify
exactly
which
one?
Because
you
can
only
because
one
one
type
can
only
implement
one
one
trade
at
one
time
and
and
yeah
there's
quite
a
lot.
I
think.
A
A
A
So
there's
a
series
is
a
trade
and
you
have
another
crate.
You
have
a
duration
there,
so
this
both
of
this
is
not
your
crate.
So
you
can't
do
this
because
this,
like
it's
not
allowing
offering
rule
you
can't
you
can't
just
like,
like
I
mentioned
before,
you
can't
just
implement
a
trade
for
other
people.
Other
people's
stuff,
like
you,
can't
just
randomly,
go
and
implement
this
when
other
people's
stuff.
A
If,
let's
say
there
are
like
multiple
crates
and
then
different
people
are
going
randomly
quite
implement
the
same
trade
for
the
type
that
you
put
here
when
they
break,
then
it's
like
suddenly,
it
will
be
very
surprising
for
other
people
hey
how
come
how
come
when
I,
when
I
add
another
comment
at
the
grid
to
when
I
add
another
grade
to
use
like
basically
use
another
library,
that's
a
very
existing
code
break
so
yeah,
rather
than
allow
that.
So
you
can't
really
do
this
due
to
orphan
rule.
A
A
A
A
So
this
is
a
normal
use.
You
normally
import
your
import
from
standard
library,
fs
the
file
system,
it's
a
it's
a
normal
struct
and,
and
then
you
use
you
use
the
standard.
Io
output,
the
buffer,
the
buffer,
is
the
buffer,
which
means
that
the
radar
is
there's
a
buffer
for
it.
So
you
don't
need
to
you.
It's
that
it's
back
by
the
memory,
so
you
don't
need
to
like
keep.
Keep
issuing
the
system
call
and
then
there's
also
wait.
Wait
is
a
trade,
so
you
notice
here.
A
A
A
A
Can
you
do
this
for
now?
This
is
this
means
mutable
reference
like
the
pass
in
as
a
reference,
but
can
be,
can
be
mutated.
Rotated
means
you
can
change
the
way,
change
the
value
and
the
question
mark
basically
means
the
error
handling
rust.
You
can
you
property
out,
so
pretty
I
will
ensure
it
will
print
out
the
bikes.
A
A
Search
file
you
can
find
file
here,
you
search
pathfinder,
you
can
find
buffer,
but
you
search
rate.
Oh,
you
cannot
find
any
rate
and
what
is
this
yeah?
So
if
you,
if
you
remove
it,
then
oh
this
will
break
yeah,
there's
no
graphic
probability
or
you.
You
can
just
use
this
predict.
But
if
you
do
the
star,
you
don't
know
why
it's
in
the
star.
A
So
we
should
remove
this
preview.
Then
oh,
this
will
break
yeah.
So
this
is
some
sort
of
composition
that
I
noticed
so.
Okay,
the
end
any
question.