►
Description
Konstantin is Rust enthusiast, speaker and former Minsk community organizer. He's maintainer of several crates.
A
I
want
to
introduce
my
small
open-source
project,
it's
a
library
called
VK
RS
and
the
name
of
my
presentation
is
developing
in
vk.com
API
DSL,
with
markers
in
rust.
Just
a
little
bit
information
of
myself,
ok,
so
I
I
write
code
since
1991
and
last
time
I
tried
to
count
number
of
languages
I
used
to
eat.
It
was
around
to
any
of
them
and
I'm
in
love
draw
since
it
was
version.
A
0.9
I
was
organizer
for
first
rod
mincemeat
up
in
2016.
It
was
anniversary
of
first
stable,
reg
version
of
rust
and
so
I
really
like
rust
for
its
community
for
its
tools
for
its
extensive
type
system
and
I
tried
to
build
several
things
we
need,
and
one
of
the
things
I
tried
to
build
in
rust
is
vk.com.
A
Api
wrapper
what
what
is
vk.com
for
those
who
don't
know
about
it.
It's
a
little
bit
of
stats.
I
want
with
it
it's
very
large
Russian
social
network,
the
largest
one
that
Russian
Facebook,
and
it
has
a
very
large
bloated,
API
Jason
Bay
sleep
arrived
around
for
more
than
400
and
points.
Last
time,
I
checked
it
out
a
lot
of
endpoints
and
constantly
growing.
A
So
I,
once
I
decided
to
develop
a
wrapper
for
this
API
for
my
own
usage
and
I
like
building
some
scripts
or
some
automation
tools,
and
for
one
of
such
two
I
decided
it
wrapper
for
this
API
also
I
wanted
to
try
out
new
features,
so
the
names
of
the
libraries
Vic
ARS
is
and
to
build,
wrapper
I
decided
to
use
this
cell.
It
wasn't
the
first
decision,
I
started
with
small
implementation,
but
there
were
a
lot
of
bulk
of
boilerplate
code.
A
I
had
to
write
to
wrap
to
describe
every
API
endpoint
a
lot
of
boilerplate
code,
so
well.
I
got
tired
of
it
and
I
decided
to
build
their
cell,
and
my
main
point
is
how
wonderful
and
sometimes
terrible
macro
system
in
rust
is
so.
The
first
problem
I
had
to
use
when
I
started
to
build.
The
search
was
a
couple
of
years
ago.
I
had
to
use
natural
because
not
all
features
stabilized
and
just
a
little
bit
of
basic
architecture
description,
so
the
main
had
the
many
I/o
VK
is
built
on
Jason.
A
It's
just
based
a
lot
of
objects
to
work
with
so
I
used,
serger
library,
I
tried
to
start
with
ROTC
through
lies,
but
then
I
switched
to
sir
death
and
served
a
Jason
to
dis,
realize
data
to
sterilise
data
in
quests
I.
This
I
had
to
use
a
different
approach
because
all
the
data,
all
the
arguments
of
requests,
actually
URL
based
clear
strings
so
to
describe
a
pata
request,
I
created
request
rate
and
each
each
request
is
described
as
a
struct
and
request
straight
implementation.
A
So,
and
to
build
request,
it's
actually
common
part
in
classic
one
I
had
to
I
decided
to
use,
build
a
pattern
to
simplify
things
and
to
implement
build
a
pattern
for
all
the
different
end
points.
All
the
different
requests.
I
also
had
to
write
a
lot
of
boilerplate
code,
but
in
the
end,
it's
all
down
to
a
couple
of
markers
for
HTTP,
a
personally
I
use,
request
library
for
out
of
tradition,
its
e
int
age,
or
else
to
it
I.
A
A
Another
difficult
difficult
is
working
with
API.
Every
API
endpoint
must
be
marked
with
concrete,
a
clear
version,
because
the
same
request
can
you
trade
between
API
version?
If
you
take
the
same
request
but
for
one
version,
IP
of
API
and
then
you
switch
to
another
version,
format
of
the
request.
Format
of
the
response
can
change
and
you
have
to
pinpoint
the
API
of
each
end.
Point
you're
going
to
use.
A
Also
some
mate
endpoints
require
permissions,
so
I
have
to
encode
permissions
in
my
code
as
well,
so
my
presentation
will
be
a
little
more
technical
than
others.
A
lot
of
examples
here
is
an
example
of
a
PA
call.
It's
a
very
simple
one
and
token
all
token
actually
is
bound
to
some
set
of
permissions
required
and.
A
A
It's
it's
on
it's
set
on
yep.
It
works
its
request
macro
its
video
ad
API
call
pinpointed
to
version
for
API
version.
5.44
requires
video
permissions
building
is
output
format
and
it
has
two
or
three
three
hexagons.
If
three
input
arguments
to
owner
this
and
one
ID,
it's
a
little
bit
cryptic,
but
actually
it's
the
default
value,
because
every
value
should
have
a
default
because
build
a
pattern
is
is
used
and
you
have
to
set
up
the
default
value
when
you
built
initially
request,
object
and.
A
So
I
had
a
little
bit
of
problems
with
markers.
The
first
problem
was
I
wanted
to
use
boring
for
better
memory
usage,
but
you
can
just
take
token
market
at
lifetime
and
pass
it
into
macro,
so
I
have
to
generate
types
with
lifetimes
and
boring
syntax
with
lifetimes
inside
macros.
So
the
same
goes
to
generic
types.
A
Also,
there
are
a
lot
of
some
beats
of
civilization.
Logic.
I
have
to
write
myself
instead
of
using
some
deriving
and
also
documentation
because
standard
way
to
document
things
in
rust
is
document,
but
you
can
generate
just
generate
the
comments
in
macros
because
their
comments,
after
all,
you
just
can
degenerate
comments
in
markers,
so
I
have
to
solve
all
those
problems.
After
all,
so
well
had
I
had
to
add
another
marker
request.
Rev,
it
has
two
blocks
its
sized
arguments
and
unsighted
one.
A
A
A
A
So
we
just
say
this
is
work,
work
of
something
else.
It
just
generates
different
code
to
its
places,
T,
it
places
all
their
gene,
Mauch,
regenerated
types
from
real
types
with
generic
arguments
and
for
API
documentation
I
this
I
sold
it
a
really
nice
way.
I
just
went
down
to
what
real
really
documents
mean.
The
command
suggests
a
Cintiq
sugar
around
dog
attribute,
so
I
judge
you
narrated
doco
to
boots.
That
said
so,
oh
I
see
so
it's
very
nice
in
simple
implementation.
A
Here
an
example
of
its
top
of
an
iceberg.
It's
the
most
basic
input,
syntax
for
request
and
here's
example
of
request
ref,
which
just
generates
for
this
blockage
in
u.s.
simple
types
for
vigil
blog
degenerates
ties
with
lifetime.
Savory
type
is
made
a
reference
with
lifetime
and
all
this
generated
inside
a
lot
of
its
I
ended
up
with
more
than
500
lines
of
macro
definitions.
A
lot
of
macro-evolution,
a
lot
of
help,
democracy
and
I
had
to
make
think
makes
made
some
unusual
approach
for
different
route.
A
Tokens
into
markers
I
had
to
work
around
a
lot
of
issues,
but
what
what
the
good
point?
It's
I
want
to
thank
rel
developers
for
stabilizing
procedural
matters.
A
table
at
least
because
before
recently
I
had
to
use
cogeneration
to
make
a
built-in
stable,
roster
kettle
of
template
codes
to
use,
sir,
the
user,
the
cogent,
but
after
procedural
mitosis
Macross
was
stabilized.
A
B
Thank
you
for
your
interest
in
presentation.
I
would
like
to
ask
about
such
decays
type
level
web
based,
Web
API.
They
selves
like
Haskell
servant
library.
They
allow
you
to
describe
your
API
as
a
type
once
and
then
generate
both
server
implementation,
client
implementation
and
possibly
implement
some
traits
like
things
to
generate
documentation,
then
based
on
one
API
definitions,
it
would
it
be
possible
with
rust
to
do
such
things,
and
could
you
somehow
compare
these
type
level
details
with
your
rust
implementation,
I.
A
A
It's
hard
it's
hard
to
answer,
because
I
developed
it
in
several
stages.
A
lot
of
time
spent
between
the
stages,
I
started
developing
it
a
couple
of
years
ago.
It's
not
actually
cover
all
the
API
endpoints,
a
lot
of
people.
End
points
are
uncovered
active
development
took
about
maybe
several
months,
but
at
this
point
and
implementing
a
new
API
endpoints
wrapper
is
quite
simple.
A
So
it
is
it's
important
mechanical
work
to
implement
each
and
buoyant
wrapper,
but
it's
it's
takes
a
lot
of
time
to
develop
to
describe
each
of
them
because
you
have
a
lot
of
them
and
then
I
covered
like
one
third
of
the
old
well
yeah
round,
one
third,
you
want
yeah
around
100
or
150
endpoints,
and
we
have
more
than
400
in
points,
so
you
just
have
to
sit
and
try
it
right
right.
Diesel
descriptions,
it's
it
won't
take
that
much
time,
but
it's
dirty
job
thanks,
yeah
welcome!