►
From YouTube: GitHub Quick Reviews
Description
Powered by Restream https://restream.io/
A
A
So
good
morning,
everyone
so
or
good
evening
or
depending
on
which
time
zone
you're
in
so,
let's
start
with
the
the
law.
The
idiot.net
save
points
feature
chad.
You
want
to
talk
about
it.
B
Sure
so
save
points
are
a
standard,
sql
thing
all
relational
databases,
as
far
as
I
know,
support
them
not
aware
of
anyone
that
doesn't
what
save
points
are
is
basically,
you
have
a
transaction.
A
transaction
can
be
rolled
back
or
committed,
obviously,
as
everybody
knows,
but
you
can
also
establish
save
points
within
those
transactions.
B
Sometimes
people
refer
to
this
a
bit
like
nested
transactions,
but
that's
not
quite
accurate,
so
save
points
you
can
create
several,
but
always
inside
a
transaction.
What
you
could
do
with
save
points
is
you
can
roll
back
to
them
after
having
gone
forward
in
the
transaction?
You
can
just
jump
back
like
roll
back
to
the
point
where
it
was
created
and
in
most
databases
you
can
also
release
them,
which
is
sometimes
people
think
about
it,
a
little
bit
like
committing.
B
But
it's
not
you
know,
nothing
has
been
committed
until
the
transaction
as
a
whole
has
been
committed.
That's
like
a
very,
very
important
point.
Now.
This
is
the
thing
that's
again
supported
by
all
databases.
Almost
there's,
no
api,
exposing
system
data
in
ado.net.
There
is
sql
client
support
for
this.
Going
way
back
for
to
the
beginning,
so
the
sql
transaction
exposes
three
method.
Sorry,
two
methods
save
and
roll
back
for
this
they
accept
a
string,
so
save
points
have
a
name
which
identifies
them
because
you
can
have
several.
B
The
postgres
driver,
npg
sql,
basically
followed
suit
and
did
the
same
thing,
adding
a
release
as
well,
which
sql
server
lacks,
and
this
issue
is
about
promoting
or
at
least
bringing
an
api
into
system
data.
That
would
you
know,
do
this
and
allow
database
agnostic
programming
to
do
save
points.
B
So
there's
a
there's,
a
tiny
bit
of
syntax
differentiation
between
the
databases,
so
this
would
basically
encapsulate
that
and
allow
anybody
to
just
go
to
a
db
transaction,
something
like
an
if
ef,
core
or
any
sort
of
orm
could
just
go
and
manage
save
points
with
an
api.
So
much
for
that.
A
few
quick
notes
on
this
I'll
try
to
be
very
very
short.
The
api
proposal,
as
it
is,
is
basically
a
copy
of
the
sql,
client
and
npg
sql
apis
because
they
are
already
there
so
there's
a
big
car.
B
A
big
pro
here
would
be
to
simply
continue
this,
because
people
are
aware
of
these
apis
they've
already
used
them,
so
I'm
not
very
happy
with
it.
This
api
is
not
ideal
in
my
opinion,
but
it
is
already
there,
so
it
does
kind
of
make
sense
to
maybe
do
that
I've
got
a
slightly
alternative
version
below
if
we
want
to
break
it,
there's
no
break
because
there's
no
api
at
the
moment,
but
to
do
something:
that's
not
going
to
be
compatible
with
the
existing
ones.
B
What
I
don't
like
about
this
api
I'll
just
say
so:
there's
save
roll
back
and
release
nowhere.
Does
it
say
that
it's
a
save
point
in
the
api
itself,
except
for
the
parameter
name,
which
is
not
ideal?
That's
one
point.
Another
point
that
is
somewhat
weird
release
as
an
operation
is
something
that
has
practically
no
side
effects.
So
all
it
does
is
release
several
resources
and
it
does
prevent
you
from
rolling
back
to
a
state
point
which
you've
you've
created.
B
That
method,
ideally,
would
would
behave
like
this
pose,
so
it
would
not
throw
any
exception.
This
is
a
little
bit
important
since
once
a
transaction
is
already
completed
in
some
way,
then
releasing
a
save
point
in
that
transaction
should
not
throw
it
would
make
a
program.
It
would
require
users
to
basically
handle
exceptions
in
places
which
are
kind
of
awkward
and
unnatural.
B
In
the
same
way,
transactions
when
you
dispose
them
will
always
the
dispose
will
always
just
not
do
anything
like
this
is
supposed
to
be,
even
if
their
connection
has
already
been
closed
or
broken
or
whatever.
So
I
would
ideally
I'm
mixing
up
several
subjects
here,
but
if
I
were
to
design
this
from
scratch,
maybe
we
would
have
something
called
begins
or
start
save
point
that
returns
an
eye
disposable
which
has
a
roll
back
on
it
and
which
you
can
then
dispose
with
absolutely
no
exceptions.
B
I
was
myself
kind
of
not
completely
sure
I
still
lean
towards
this
api,
because
it's
consistent
with
the
current
the
current.
You
know
apis,
it's
very
simple,
and
we
can
give
guidance
that
release
shouldn't,
throw,
I
think,
that's
more
or
less
it.
Another
open
point,
there's
a
feature
flag
there.
Our
save
point
supported
is
its
current
name,
which
I'm
sure
some
people
here
are
going
to
hate.
The
point
is
basically
to
provide
some
sort
of
way
for
people
to
check
in
advance
whether
the
provider
supports
this
feature
or
not.
A
A
B
So
at
some
point
let's
say:
you've
done
some
operations,
some
updates,
and
now
you
wanna
set
you
wanna.
Basically
just
do
a
checkpoint
or
a
save
point,
because
you
know
you're
going
to
be
doing
stuff
and
you
may
want
to
roll
back,
because
you
might
encounter
an
error
very
typical
situation
that
we
have
in
the
if
core
I've
been
working
on
this
recently
is
you
you
you're
about
to
start
like
a
complex
operation
and
there
might
be
some
unique
key
constraint,
violations
there
or
something
some
sort
of
error.
B
B
So
rollback
actually
reverts
the
state
of
the
transaction
as
if
you
didn't
do
a
def,
whereas
release
removes
the
save
point,
but
it
retains
the
changes
that
you've
done
since
that
save
point
it
basically
is
so
sql
server
doesn't
implement
it,
so
it's
not
a
necessary
operation.
All
it
does
is
release
all
server
the
database
resources
associated
with
that
save
point,
so
you
can
no
longer
roll
back
to
it.
That's
all
it
does.
A
B
C
Does
it
make
sense
from
an
object
model
to
to
do
a
named
rollbacker
release,
or
would
it
make
more
sense
that,
let's
call
it
save
return
an
object
that
has
the
verbs
roll
back
and
release,
because
it
seems
weird
that
you
would
want
to
keep
passing
in
a
name
instead
of
tracking
the
state
in
something
like
a
using
statement?.
B
So
I
absolutely
agree
and
that
that's
exactly
the
point
I
was
I
was
talking
about
before
I
would
absolutely
we
could
consider
having
a
db
save
point
which
has
rollback
on
it.
It
doesn't
necessarily
have
to
have
released
because
that
would
be
disposed
in
my
opinion,
that's
how
I
would
model
this
as
an
api.
B
However,
so
the
reason
I'm
not
proposing
this
is
that
it's
already
an
api
that
sort
of
exists
on
two
providers
and
we
could
say
that
it's
valuable
to
keep
it.
I'm
also
not
sure
that
this
justifies
introducing
like
a
new
db,
save
point
thing
which
is
like
another
type:
another
concept:
it's
maybe
a
little
bit
heavyweight
for
this
kind
of
light
api,
which
you
know
I'm
just
not
sure
it
justifies
it
from
a
modeling
point
of
view.
What
are
the
restrictions
on
the
names?
B
B
B
So
I
think
I
mean
if
somebody
is
coding
against
this,
they
could
use
those
names
for
themselves
to
keep
track,
so
they
could
have
several
save
points
and
they
could
use
them
to.
You
know
kind
of
have
meaningful
names
just
to
track,
which
save
point
is
which
so
I
do
think
it
makes
sense
to
expose
this.
I
don't
want
to
hide.
You
know
this
kind
of
thing.
Okay,.
A
B
In
ado.net
in
general,
I
I
usually
just
try
to
expose
things
rather
than
try
to
build.
You
know
all
kinds
of
functionality
above
it
which,
which
encapsulates
you
know
the
direct
sql
thing.
This
is
a
direct
reflection
of
the
sql
commands.
A
I
mean
it
makes
sense
to
me:
I
mean
like
we
could,
even
if
we
eventually
find
out
that
all
the
people
want,
like
a
db,
save
point
type,
we
could
build
that
on
top
of
these
apis
right,
they're,
not
necessarily
mutually
exclusive.
We
would
just
have
a
new
method
that
wouldn't
be
virtual,
because
it
would
just
maybe
implement
itself
over
the
over
the
other
ones.
That
would
be
like
begin
save
point
or
something
they
will
give
you
back
a
db,
save
point,
and
then
that
would
do
this,
for
you.
C
For
the
sake
of
discussion
that
we
rename
save
to
create
save
point,
and
well
that's
already
the
name
that
you
would
want
for
create
save
point
so.
A
A
B
On
db
connection,
you
have
begin
transaction,
so
here
it
could
be.
I
would
tend
to
call
it
create
savepoint
personally
fair
enough,
because
the
transaction
and
the
save
point
are
not
exactly
the
same
or
whatever,
but
I
do
agree
that
if
we
do
think
in
the
future
that
we
might
want
to
add
a
db
save
point,
it's
better
to
do
this
now,
rather
than
end
up
with
two
save
point
apis-
and
you
know.
A
Yeah
I
mean
like
it's,
I
don't
know
like
from
a
from
a
pure
coding.
Standpoint
like
passing
around
strings
is
not
great
because
they're,
like
you,
know,
primitive
type,
so
you
don't
actually
know
what
it
represents,
which
is
kind
of
what
you
would
have
to
do
in
order
to
make
that
workable
right
I
mean,
I
don't
know
exactly
what
coding
looks
like,
but
with
transactions
you
almost
always
spend
multiple
methods.
Usually
so
I
don't
know
whether
this
is
also
the
case
for
save
points
or
whether
they're
just
within
the
local
body
of
something.
A
And
then
I
guess
you
don't
yeah.
I
guess
transactions
are
different
because
you
don't
have
to
end
and
list
in
things
and
stuff
right,
but
because
he
would
just
basically
say
save
asin,
give
it
a
name
and
then
sorry
for
for
transactions.
You
would
just
begin
it
and
then
you
would
pass
it
around
to
actually
enlist
commands
into
it.
But
I
guess
for
these
kinds
you
would
just
say
within
the
current
transaction
start
you
know,
save
the
save
point
and
then
call
some
other
methods
and
then
eventually,
maybe
in
a
catch
handle.
A
B
So
I
think
I
think
there
are
definitely
scenarios
where
a
save
point
is
going
to
be
passed
around
if
the
user
application
is
sufficiently
complex
or
whatever
the
difference.
One
differ
again.
One
difference
between
transactions
and
save
points
is
at
the
sql
level
one
is
named
and
the
other
isn't
so.
Transactions
have
no
name.
There
is
no
such
idea.
B
B
Two
two
providers
at
the
moment:
they're
sql,
client
and
except
for
the
release,
one
and
then
there's
mpg,
sequel
and
there's
interest,
so
there's
already
bradley
granger
from
my
sequel
that
I
think
even
maybe
possibly
already
implemented
this,
but
anyway,
a
lot
of
interest
in
sqlite
again
with
bryce
from
the
ef
team
who's
managing
that.
So
that
would
also
go
in
for
5.0.
A
Yeah
I
mean
at
that
point.
I
would
argue
that
to
me
it
makes
no
difference
whether
we
do
it
now
or
whether
we
do
it
later,
because
it
seems
our
most
popular
provider
already
has
safe
and
rollback
methods
anyway.
So,
like
no
matter
what
we
do
right
now,
we
would
always
have
a
safe
and
rollback
method
for,
for
you
know,
sql
server
and
postgres
right.
B
I
mean
we
could
we
could
say
that
the
system
data
standard-
I'm
devos
advocate
here
mostly
introduces
the
new
things,
and
then
you
know,
npg,
sql
and
sql
client
would
have
to
implement
them,
which
I
don't
see
would
be
a
big
problem
because
they
would
internally
implement
the
same
thing
that
you
suggested
right.
A
E
I
don't
think
that's
true.
I
think
most
people
will
be
coding
against
a
db
transaction
and
not
against
directly
a
sql
transaction.
I
mean,
isn't.
That
is,
don't
you
think.
That's
the
case
shy.
I
think,
most
of
the
time
when
you're
writing
80.
code,
because
you
you
usually
have
to
explicitly
cast
things
unless
you're
creating
them
in
certain
ways.
So.
B
E
Even
sql
connection,
if
you
create
it
from
the
provider
factory,
you
get
back
db
connection
and
you
have
to
cast
it
like.
I
don't
see
people
using
you
know
we
did
the
analysis
of
this
also
for
microsoft,
data,
sql,
client
and
system
data,
sql,
client
and
most
people
are
not
using
the
sql
apis
directly.
Most
people
are
going
to
be
using
the
basic
apis
and
then
casting
to
the
sql
object
when
they
need
to.
A
A
B
Right
what
I
would
say
is
if
you're
using
ef,
then
we
already
have
apis
inside
ef
which
expose
on
at
a
higher
level
which
expose
save
point
functionality.
So
you
won't
necessarily
access
these,
and
I
think
I
don't
know
from
what
I've
seen
if
you're,
not
using
ef,
so
you're
coding
directly
against
you
know
sql
client,
I
tend
to
usually
you
know:
people
don't
give
really
care
about
db
provider
factory,
because
why
would
they
right
so
they
do.
B
E
I
mean
I
honestly,
I
still
think
we
should
keep
the
same
api
in
both
places
anyway,
I
don't
think
we
should
make
system
data
different,
I'm
just
I
think
it's
I'm
just
not
convinced
that
it's
correct
to
say
the
majority
of
people
are
going
to
be
using
this
through
their
their
sql
ap.
The
research
we've
done
in
the
past
indicates
that
that
people
don't
do
that
they're
more
much
more
commonly
use
the
base
types.
E
A
Yeah
so
then,
basically,
what
you're
saying
is
that
we
should
make
up
our
mind
now
then,
whether
we
want
to
have
an
object
or
not.
I
mean
I
personally
would
say
like
I
I
don't
think
having
both
would
be
terrible.
B
A
I
I
think,
that's
not
the
end
of
the
world,
I
mean,
if
you
really
really
wanted
to.
We
could
also
hide
the
save
and
roll
back.
My
apis,
if
you
think
the
create
save
point
api
is
better,
but
I
don't
know
to
me
like
with
an
idiot.net
like,
I
think,
a
you
know,
begin
save
point
or
create
save
point
that
actually
gives
you
an
object
back
seems
more
idiomatic
than
passing
around
strings.
E
So
another
point
on
this
is
that
it's
not
that
we've
seen
lots
of
customers
clamoring
to
be
able
to
do
this
at
radio.net
level.
This
proposal
didn't
come
about
through
that
route.
It
came
about
through
a
specific
issue
in
ef
core
that
caused
us
to
well
shy,
basically
to
go
and
analyze
that
and
say
hey.
If
we
use
save
points
here
in
ef
core.
Basically,
you
call
save
changes
once
it
fails.
We
roll
back
to
the
last
save
point.
E
So
it's
nice,
that's
what
we
did
and
then
we
saw
okay,
we're
doing
this
in
ef
core.
But
two
providers
already
have
this
at
the
ado.net
level.
Should
we
not
have
a
common
instruction
rather
than
abstracting
it
purely
in
ef
core?
And
so
that's
where
this
came
about.
So
it's
not
like
we've
got.
I
don't
know
that
it
matters
too
much
what
this
is
what
this
is
like
from
a
customer's
perspective,
because
we
haven't
really
been.
You
know
it's
not
something
that
I
think
in
trying
to
write.
E
What's
new
in
here
in
the
preview,
8
release
or
pre
yeah
37
release
today
shy
and
I
had
a
big
conversation
basically
about
how
do
I
show
something
that's
meaningful
and
shows
how
this
is
useful
and
it's
quite
difficult.
It's
pretty
advanced
case
to
get
into
can't
write
three
lines
of
code
and
say
this
is
how
it's
useful.
C
I
mean
in
order
to
minimize
the
amount
of
work,
really
that
any
providers
do
what
what
I
would
do
is
so
I
guess
what
I
suggest
is
that
we
have
like
create,
save
point
returns,
a
db,
save
point
that
stores
the
transaction
and
its
name.
And
then
we
leave
the
a
virtual
rollback,
save
point
and
virtual
release,
save
point
on
db
transaction
that
accept
the
name
like
they
do
right
now,
just
in
case
this
is
anybody's,
preferred
model,
and
then
the
object
just
calls
those
so
it
the
db.
C
Save
point
would
have
no
virtual
members,
because
it's
just
calling
back
to
the
things
on
the
transaction
that
created
it,
and
so
it's
just
tying
together
the
string
and
the
and
the
transaction
so
that
you
can
just
use
it
in
the
using
statement
and
everything
looks
nice.
And
then
you
have
the
rollback
as
a
zero
argument
method
of
like
if
you
hit
it,
you
just
call
rollback
and
you're
done.
C
Yeah,
and
so
if
somebody
wants
to
just
use
strings,
they'd
call
create
save
point.
They'd
ignore
the
result,
that's
the
same
as
being
void,
except
it
used
the
a
register.
E
So
that
that
does
create
a
a
decision
point
for
people
right
so
now
they
have
to
understand
that
in
order
to
use
it,
they
have
to
and
they'll
have
to
understand
that
calling
save
point
name
is
the
same,
and
it's
not
different
from
doing
it
the
other
way.
So
I
I
don't
know
that
that
makes
a
better
pit
of
success
than
just
having
one
way
to
do
it
like
creating
decision
points
like
that
often
makes
things
more
more
difficult
for
people
to
use.
C
Maybe
I
feel
like
most
people
would
see,
create,
save
point
returning
a
thing
and
that
has
verbs
on
it
and
then
they
would
stop
looking
at
the
other
things
and
then
the
docs
could
certainly
on
rollback.
Save
points
say
it's
primarily
intended
for
infrastructure,
you're
expected
to
use
the
dbsave
point,
but.
E
That's
not
my
experience
of
helping
customers
over
the
years.
It's
much
more
common.
That
they'll,
say:
they'll
ask
a
question:
why
is
this
returning
this
and
these
are
there?
What's
the
difference
between
calling
this
one
and
doing
that?
I
don't
understand
why,
when
I'm
supposed
to
use
this
instead
of
use
that
that's
what
I
would
expect
the
feedback
to
be.
B
So
I
mean
the
actual
work
to
to
save
providers,
isn't
very
significant
I'd
just
implement
this
and
also
do
a
pr
to
single
client.
I
guess
it's
not
a
deal.
If
we
really
feel
like
we'd
like
to
have
the
nice
api,
then
I
would
say:
let's
just
go
with
that,
rather
than
also
do
save
and
unite
the.
E
B
I
I
tend
to
agree
so
I
mean
if
we
do
like
a
begin
transaction
that
returns
something
then
that's
already
a
new
api,
because
then
we
don't
have
save,
and
I
would
also
mention
that
there's
no
async
by
the
way
at
the
moment,
if
you
look
in
sql
client,
you
don't
have
save
async,
and
so
in
any
case
you
know
a
new
api
is
required
here.
A
A
E
E
The
sql
transaction
that
derives
from
db
transaction
has
a
public
method
rollback
and,
and
it
will
then
hide
the
method.
That's
here,
assuming
the
one
on
on
sql
transaction
isn't
virtual
well,
it
will
hide
anyway
because
it
won't
override,
which
will
obviously
be
a
compile
time
warning,
which
most
people
treat
as
an
error.
So
when
you
rebuild
see
when
they
rebuild
sql
client
they'll
see
an
error.
Binary
compact
should
be
fine
right
because
it
will
abound
to
the
right
method
for
everything
that's
already
existing.
A
B
A
A
Whether
that
actually
does
anything
right,
because
I
supposedly
our
base
implementation
would
throw
not
supported
and
return
faults
from
our
save
once
supported
and
which
now
means
until
they
get
a
version
of
sql
provider
that
actually
supports
it
like
they
will
get
somewhat
odd
behavior
depending
on
the
steadical
side.
But
I
guess
there's
nothing.
We
can
do
about
that
either
right.
So
that's
what
I'm
saying
like
to
me.
The
existing
apis
also
have
downsides
too
right.
Yeah.
E
E
Usually
we're
okay
with
that,
because
it's
not
binary
compact
breaking
right
and
if
the
thing
that
is
going
to
you
all
the
things
that
are
going
to
be
using,
it
need
to
be
rebuilt
on
top
of
it
in
order
to
work
correctly.
But
usually
that's
actually.
Okay,
in
cases
like
this,
because
the
behavior
is
the
same
in
both
cases
so
but
you're
correct
that
to
get
full
compatibility,
it
requires
microsoft,
data
sql
client
to
release
a
new
version
and
that's
certainly
an
advantage
of
not
copying
the
existing
api
surface.
A
B
A
E
E
But
again
it
all
depends
on
on
how
much
we
think
moving
this
api
forward
and
making
it
the
common
one
on
system
data
is
the
right
way
to
go
versus
doing
a
new
api
which
doesn't
currently
exist
on
system
data
yeah
and
therefore
you
know
if
we
still
leave
the
ones
that
are
in
the
providers
you
still
cast
the
sql
client
or,
if
you're,
using
it
or
sql
transaction
or
if
you're,
using
it
directly,
you
can
still
use
the
old
ones,
but
then
maybe
that's.
This
is
another
reason
to
do
a
different
api
on
here.
A
A
B
A
Know
it
seems,
but
like
other
than
that,
I
think.
B
E
A
C
Is
an
r
usually
is
just
if
you
have
a
you
know,
just
a
noun
or
an
adjective,
but
since
since
you're
using
supported,
there's
an
easy
verb
there,
which
is
supports,
and
so
it's
that
has
a
better
verb.
So
it's
better
self
description
which
is
really
where
the
thing
comes
from
because
it'd
be
like
you
know.
If
it
was
something
of
is
this,
you
know
saved.
A
C
C
I
I'll
say
I
don't
really
it's
been
a
while,
since
I've
used,
you
know
any
of
these
apis,
but
to
me
save
taking
a
string
feels
like
saving
a
file
and
it's
not
saving
a
file.
It's
creating
a
save
point
which
you
need
to
now
ask
or
save,
or
support,
save
points
before
you
can
know
whether
or
not
you
it's
safe
to
call
it
and
the
things
aren't
related
in
any
way
other
than
documentation.
C
A
B
A
F
A
A
A
E
But
by
putting
this
at
a
distraction
layer,
then
things
like
orms,
like
ef
core,
can
now
use
this
api
and
when
somebody
oracle,
for
example,
bring
up
their
ado
provider,
they
don't
then
have
to
implement
this
in
ef
because
it
just
uses
this
under
the
cover.
So
this
is
kind
of
like
building
on
the
existing.
E
You
know
abstraction
level
that
is
in
system
data,
and
most
of
that
is
going
to
be
used
in
the
ecosystem
by
people
using
dapper
or
ef,
or
something
else
above
it
where
this
actual
api
doesn't
matter
too
much,
because
you
know
it's
it's
coded
in
one
place
by
somebody
who
knows
what
they're
doing
you
hope.
E
D
B
E
F
B
Gracefully,
which
I
I
do
get
the
you
know
the
argument,
but
every
other
language
out
there
you
look
at
you
know
you
look
at
python.
You
look
at
jdbc
like
a
major
thing
that
languages
provide
is,
is
a
database
api
and
you
know
dotnet
has
it,
but
it's
not
ideal.
So
I
just
think
we
should
do
what
we
can
to
make
it
better.
Basically,
that's
all
without
breaking
without
you
know,
breaking
the
world
right.
E
D
E
A
A
A
A
G
Yeah
sure
so
I
mean
in
the
in
this
screenshot
I
can
see,
I
cannot
see
it
but
anyway,
so
basically,
it's
just
the
two
overloads
one
is.
G
The
two
overloads
one
is
json.
Sorry
I
get
these
pings
one
is
the
add,
json
console
the
other.
One
is
systemd
they
basically,
as
I
put
it
in
the
description
of
the
issue.
If
so,
the
user
wants
to
get
the
like
the
default
properties,
they
would
have
to
have
this
like
empty
lambda
and
but
like
instead,
just
adding
those
to
basically
apis.
I
I
think
it's
I
was
hoping.
Maybe
this
is
like
a
very
straightforward
api.
What
do
you
think
or
just.
G
So,
basically,
if
they
don't
provide
it,
there
are
a
bunch
of
properties
for
like
the
json
format
or
systemd
format
like
the
like,
the
bullions
would
be
false.
The
strings
would
be
empty
all
of
that,
but
it
still
would
work
and
like
they
don't
absolutely
require
to
set
things
up
and
especially
now,
because
it's
a
new
feature
and
everything
if
people
want
to
just
try
it
out,
they
might
be
confused
to
see
like.
Why
do
they
need
to
provide
an
action,
but
then
they'll
just
try
to
these
overloads.
Most
probably.
G
Yeah,
basically,
there
are
other
ways
they
could
be
doing
the
same
thing
and
like
setting
everything
up
and
that's
by
saying,
add,
console
and
then
in
the
con
in
the
configure
of
add
console,
they
would
say
the
formatter
name
is
either
json
or
systemd.
So
there
are
other
ways
of
doing
it,
but
it
just
made
sense
to
have
another
overload
that
just
doesn't
take
the
configure
lambda
because
add
console
itself
has
an
overload
that
doesn't
take.
I
feel
like.
C
Corey's
question
and
if
it
wasn't
it's,
my
question
now
is:
there's
two
ad
consoles:
there's
now
two
adjacent
console
and
there's
two
ad
system
d
console,
but
there's
only
one
ad
simple
console:
oh.
G
I'm
sorry
I
didn't
realize
thanks.
So
basically
the
reason
is-
and
I
put
it
on
the
description
of
the
issue-
is
that
at
simple
console,
if
it
didn't
have
the
configure,
it
would
act
exactly
as
add
console
so
add
system
console
without
the
configure
would
act
exactly
as
icons.
Also,
that's
why
I
thought.
Maybe
it
won't
be
yeah.
We
could
add
that
too,
but
I
thought
maybe
it
would
not
have
value.
G
The
name,
I'm
not
sure
this,
like
simple
console,
used
to
be
called
defaults
before
and
like
we
decided
on
the
at
simple
console
name,
but
it
basically
the
docs
say
that
at
simple
console
just
adds
a
default
console
if,
if
they
like,
if
they
kind
of
read
the
con,
the
docs
in
that
sense,
they
might
kind
of
get
to
the
conclusion
that
at
simple
console
without
the
configure
is
basically
the
same
thing
as
add
console.
But
I
I
I
see
the
confusion
there
probably
open
to
suggestions
too.
So.
D
Yeah,
I
think
the
two
that
you're
adding
are
good.
I
would
just
consider
adding
an
ad
symbol
console,
even
if
it
just
forwards
to
the
ad
console
sure
it
would
probably
be
a
little
helpful
to
users.
G
Yes,
and
and
with
these
calls
also
because
it's
not
recommended
but
like
if
someone
were
to
add
one
after
another,
usually
the
last
one
wins.
So
if
someone
says
builder
dot
at
simple
console
at
systemd
console
at
json
console
like
basically
the
last
one
gets
picked,
sure
yeah,
we
could
add
simple
console.
As
you
mentioned,.
A
A
A
So
it's
in
the
designs,
repo,
it's
number
one,
four
two.
It
is
basically
an
update
to
the
thing
we
already
approved
last
time.
Let
me
just
project
what
I
have.
A
I
guess
probably
the
markdown
view
is
better
because
they
can
see
the
comments
and
by
we
I
mean
me,
so
we
have
effectively
two
problems
here.
One
of
them
is
when
I
ran
this,
so
basically
what
I
did
is.
A
I
ran
this
tool
that
I
wrote
a
few
years
ago
over
our
binaries
for
net
core
and
then
I
basically
found
all
the
apis
the
tool
platform
not
supported
right,
and
we
already
audited
that,
and
that
was
basically
my
input
into
which
api
should
be
marked
as
being
windows
specific
and
then
what
I
ended
up
doing.
A
Is
I
rerun
this
again.net
5
to
make
sure
that
it's
inconsistent
with
the
current
bits
and
very
few
things
changed,
and
then
I
noticed
that
a
few
days
later,
when
I
redid
the
same
analysis
for
blazer
that
I
up
and
I
didn't
actually
clear-
my
output
folder.
So
basically,
what
I
was
running
against
was
still
done
in
core310.net
5.,
and
so
this
pr
is
basically
actually
doing
it
against
on
5
and
it's
based
on
preview
6.
A
I
believe-
and
so
we
probably
should
update
this
at
some
point
as
well,
but
it's
basically
capturing
a
bunch
of
new
types
that
we
haven't
had
before.
So,
for
example,
arc
iterator
was
captured.
A
A
So
we
could
take
the
stands
that
we
just
market
for
now
as
being
window
specific
because
that's
actually
what's
happening,
but
then,
if
in
a
later
release
we
mark
it
cross-platform,
then
it's
kind
of
annoying,
very
wrote
code
that
yeah
basically
makes
it
work
right
and
then
now
you
have
to
like
undo
all
of
this
code,
and
that
seems
weird,
so
my
suggestion
would
be
iterator.
A
We
just
ignore
this
one
as
an
oddity
right
now,
especially
because
this
type
is
effectively
only
used
by
five
people
in
the
world
and
these
people,
who
already
do
it.
They
know
what
they're
doing
usually,
because,
especially
for
unsafe
code,
when
you
navigate
the
the
underscoreness
correctly
thing
right.
C
But
we
marked
system
directory
services
and
system
directory
services.
Account
management
is
windows
only
and
there
are
definitely
people
now
that
system
directory
services
protocols
or
whatever
works
across
platform
that
they'll
probably
be
trying
to
make
those
other
libraries
work
cross-platform.
So
either
we're
only
marking
things
if
they're
permanently
single
platform
or
we're
marking
things
based
on
the
state.
They
were
on
the
release
and
I
don't
think
that
we
should
be
mixing
the
policies
unless
there's
like
an
active
pr
that
might
make
it
for
five.
A
Yeah,
I
mean
that's
fair.
I
guess,
like
my
question,
is
just
like
for
things
like
arc
iterator
like
it's,
not
really
an
api
right.
I
mean
it's
kind
of
like
a
type
system
handshake
between
the
runtime
and
the
and
the
code,
which
is
very
different
from
let's
say,
an
actual
api
like
a
directory
services
thing
or
something
right.
So
that's
you
know
this
one
I
don't
know
like.
A
I
mean
all
three
people
in
the
world
who
use
those
api
will
be
very
happy
but,
like
the
vector
services,
I
think
is
way
more
popular
than
this
one.
C
Yeah
I
mean
I
I'd
be
inclined
to
say
our
default
position
based
on
what
we
think
we
want
to
do
for
the
directory
services.
Stuff
is
we
we
mark
it
for
whatever's,
true
in
the
release,
and
when
someone
gets
around
to
implementing
our
generator
on
a
non-windows
platform,
they
can
well.
Hopefully
they
do
it
on
all
of
them,
because
we
don't
have
this
notion
if
it
works
on
two
platforms
at
least
I
don't
think
we
do.
A
C
We
don't
support,
not
one.
We
we
support
inclusive
policies
only.
I
think
anyway,
so
update
the
attributes
for
that
release,
because
it
would
be
the
case
that,
if
you're
referencing,
this
type
from
a
five
build
it'll
be
like
hey.
I
think
this
is
platform
specific
and
yeah.
Maybe
you're
actually
running
on
a
six
run
time
and
it
works,
but
you
know
for
the
purposes
of
the
analyzer.
It's
like
this.
This
probably
isn't
going
to
work
seems
correct.
A
A
We
we
we
could
in
principle,
do
that,
but
we
need
to
be
careful
that
it's
not
super
noisy.
I
mean
you
could
imagine
a
case
where,
if
you,
if
you
have
a
guard
and
then
nothing
you
call
under
the
guard,
is
actually
platform
specific
for
the
platform
you're
guarding
for
then
we
give
you
a
well
you're
doing
this
guarding
for
no
reason
kind
of
thing,
but
that
might
be
tricky
sure.
D
A
But
yeah,
I
should
probably
think
about
this
and
respect
what
that
means
all
right.
So
then
the
other
thing
that
showed
up
was
sql
types.
So
we
have
sql
file
stream,
which
I'm
not
sure
why
that's
windows
only.
E
C
A
A
A
D
I
mean
it
needs
to
participate
in
a
transaction
with
between
sql
and
the
file
system,
so
it
might
be
doing
some
weird
windows,
specific
things.
It
makes
sense
to
me.
A
Right
yeah,
I
think
that's
fine,
so
yeah
all
the
db.
We
should
probably
mark
the
entire
assembly
because
I
don't
think
all
the
db
is
supported
anywhere
else,
because
literally
every
single
type
shows
up.
A
A
Still
scrolling
for
system.drawing,
we
have
phone
converter,
front,
converter,
plus
name
converter,
so
that
seems.
A
A
Review,
I
also
think
it's
weird
that
I
cannot
reject
my
own
proposal.
It's
like
no,
you
cannot.
You
can
only
comment
that
you
cannot
take
it
back
system
drawing
all
right,
so
phone
converter,
an
image
converter.
I
don't
know
about
the
audio
specific.
A
I
guess
we
need
to
actually
ask
the
wind,
the
the
wind
farms
people
to
take
a
look
at
this,
probably
be
a
good
idea.
A
A
We
do,
but
in
the
past,
when
we
have
added
these
new
types
that
are
echo
specific,
we
usually
did
it
a
bit
so
that
we
can
move
it
to
a
different
assembly.
Otherwise
it
would
have
just
exposed
the
constructors
on
the
types
themselves.
A
A
Only
yeah,
I
guess
sound
player
system
sound,
they
all
make
sense,
they're,
just
rapping
with
32
apis
no
surprises
there.
I
would
mark
the
entire
types
because
it
doesn't
make
much
sense
in
my
opinion,
too
magnificent
apis
on
that
one
yeah
socket
and
ping.
I
don't
know
networking
well
enough,
like
I
assume
ping
is
generally
cross-platform,
except
for
the
scent.
F
F
F
D
A
There
actually
a
tool.
Is
there
just
one
that
takes
an
end?
I
believe
there's
just
one,
I'm
not,
and
it's
the
one
that
takes
an
end
right.
D
A
Yeah
some
interrupt
services,
stuff
commentary
event,
infocom
events,
helper
yup
sounds
like
their
windows.
Only
I
can
buy
that
x500
certificate
ui.
I
suppose
it
just
caught
the
win32
api
to
show
a
dialogue
or
something
yep.
So
then
the
whole
type
should
be
marked.
C
A
I
have
literally
no
idea
what
this
is:
xaml
access
level
but
like
that
sounds
wpf
specific,
so
I
can
buy
that
they
don't
these
don't
work
yeah
all
the
vb
ones.
I
have
ping
jared.
I
probably
have
to
ping
him
again.
So
for
those
who
don't
know
like
microsoft,
visual
basic
is
this
ginormous
rapper
dll
around
like
half
the
bcl,
because
they
had
this.
My
feature
at
some
point
that,
based
it
out
to
say
things
like
my.computer.filesystem.rename
or
something
like
that,
and
so
I
can
buy
that
some
of
them
would
throw.
A
But
I
have
to
say
some
of
them.
Don't
make
sense
to
me
like
daytime,
for
example,
should
just
work
right,
maybe
not
set
today,
because
I
assume
that
would
change
the
system
time
but
like.
A
Yeah,
I
guess
some
of
the
renamed
stuff
might
actually
use
the
the
or
the
what's
it
called
the
save
rename
that
windows
has,
but
they
you
know,
write
to
a
shadow
copy
file
and
then
we
swap
them
or
something
right,
but
it
doesn't
seem
like
it
interaction
I
can
buy
strings.
I
don't
understand
why
they're
window
specific,
I
mean
it
seems
like
we
should
be
able
to
compare
strings
across
platforms
and
then
same
with
these
guys
here,
file
system.
A
D
A
Is
probably
saying
if
none
call
shell
apis
else,
you
know
called
the
actual
shell
apis
and
then
the
shell
apis
through
and
so
the
whole
mark.
The
whole
method
is
not
marked
as
platform
specific,
so
probably
the
ones
that
don't
take
ui
options
still
work
by
the
way
the
code
paths
are
actually
executed,
but
my
tool
is
not
smart
enough
to
detect
that
yeah.
That
would
make
sense
right.
So
we'll
make
some
modifications
here
based
on
the
comments
and
then
I
think
we
can
consider
this
approved
with
feedback.
It
looks.
A
C
A
Right
but
we
don't
ship
any
aot
platform
of
dot
net
five
right,
because
the
the
the
web
assembly
one
is
moving
to
to
or
to
web
assembly
one
right
and
that
one
will
not
work
anyways
so
that
wouldn't
matter,
and
so
the
only
aot
one
that
we
have
is
is
ios
and
we
don't
ship
that
in
five
right
we
punched
a
little
xamarin
work
but
yeah.
I
guess
that's
the
problem
right.
C
Yeah,
so
I
don't
have
a
super
strong
opinion
on
the
specific
one,
given
that
it's
in
a
confusing
state,
but
I
do
think
that
we
effectively
with
directory
services,
made
the
decision
that
we're
stamping
what
the
current
release
looks
like
and
not.
What
forward
looks.
G
C
So
I'll,
let
that
one
be
a
pr
issue
and
as
in
pull
request,
not
public
relations
instead
of
a
policy
decision.
C
A
All
right
so
then
I
guess
now
we
are
back
to
other
things.
We
could
take
a
look
at
so
I
have
no
idea
who's
on
the
call
right
now
but
like
I
would
suggest
we
just
skip
the
binary
formula,
one
because
I
think
levi
was
not
sure
whether
there's
anything
to
review
left
and
then
I
would
just
focus
on
the
six,
oh
ones
and
then
see
where
this
leads
yeah.
C
I
mean
from
from
core,
I
think
it's
just
yumi
and
corey.
A
A
B
C
A
C
C
I
don't
think
there's
any
this:
wouldn't
have
any
negative
interaction
with
net
standard
right.
Adding
interfaces
to
a
struct
isn't
a
breaking
change
across
that
contract.
Boundary.
C
Right,
so
it
would
as
successfully
if
you
were
on
core
five,
but
you
would
see
that
it
didn't
implemented
it
on
standard,
so
yeah.
It
seems
fine.
D
It
will
change
what
which
equals
method
a
comparer
will
call.
It
would
be
crazy
if
the
equals
methods
were
not
compatible,
but
yeah.
C
C
Yeah
I
mean
this
one's
gonna
be
troublesome.
C
Let's,
before
we
talk
about
this,
one
which
we'll
probably
decide
to
punt
until
we
have
more
people,
looks
like
chat,
suggested
three,
one,
nine
or
nine
or
six
as
the
same
as
console
key
info,
but
a
different
type
just
facing
flow
control
is
a
read-only
struct.
That
does
everything
except
declare
its
eye.
Equatable
itself.
C
I
I
have
some
comments
in
there
about
how
our
current
rules
effectively
say
that
we
can't
ever
add
that
interfere.
We
would
never
add
that
interface
to
the
bcl
granted
never
just
means
we
have
to
change
the
rules
before
we
do
so,
but
can.
C
It
just
involved
a
lot
of
like
okay.
Well,
it's
an
eye
system
time,
but
we
don't
like
interfaces
unless
they
need
to
be
interfaces.
So
then
it
becomes.
C
You
know
like
system
time
and
then
now
we'll
now
we
have
an
object
for
getting
the
time
and
somebody
will
be
like
well.
Why
can't
I
get
the
normal
one
so
give
me
the
normal
one
and
then
now
there's
a
singleton,
and
now
you
have
the
singleton,
which
is
just
the
same
as
datetimeoffset.utc
now
and
like
in
the
end.
It's
like
all
we
did
was
add
a
bunch
of
redundancy.
Nothing
in
our
universe
is
ever
going
to
use
it.
This
only
exists
for
abstract
things
and
it's
a
hard
problem.
C
A
Yeah,
I
think
that's
what
it
already
is
like
to
me
like
what
you
just
said
about
state
and
objects.
That
makes
sense
to
me.
The
interface,
I
think
here
is
less
of
an
issue
for
me,
because
usually
the
problem
with
the
extension
interfaces
is
that
they're
effectively
modeling,
you
know
regular
classes
with
a
bunch
of
utilitarian
methods
on
them
and
that's
an
ever-growing
bag
of
stuff
right
and
that's
why
I
don't
like
interfaces,
because
you
totally
want
to
add
to
that
over
time.
A
But
if
you
have
a
nice
system
clock
and
the
only
thing
you
ever
have
is
now
effectively,
I
can
buy
that
that
interface
is
stable,
because
you
basically
would
say
everything
that
actually
deals
with
with
the
daytime
itself.
You
just
get
out
of
daytime
offset
right.
It's
just
this
kind
of
like
I
enumerable
or
basically
you
just
you
know,
get
a
numerator
and
everything
else
is
somewhere
else
right.
So
I
think
these
are
the
interfaces
I
would
I
can
actually
buy
as
a
as
a
concept.
A
I
can
even
buy
the
need
for
an
interface
here,
because
you
may
want
to
implement
this
somewhere
else,
but
I
agree
with
you
on
the
abstraction
side
of
it,
which
is
yeah
as
soon
as
you
have
a
type
like
that.
You
want
the
current
or
default,
and
then
you
go
back
to
square
one
where
everybody
just
calls
the
static
one,
and
then
you
can't
actually
inject
it,
and
that
that
seems
to
me
the
bigger
problem
with
that.
A
C
The
the
original
issue
here
suggests,
adding
it
to
microsoft.
Extension
primitives
somewhere
in
the
middle,
it
was
like
david,
threw
out
the
suggestion
that
really
it
should
live
in
system
and
then
that's
when
it
was
like
well,
the
guidance
says
sort
of
no
it's.
It
says
indirectly.
Now.
A
A
D
A
C
A
D
D
C
Right
and
yeah,
so
the
proposal
was
there's
already
the
public
one
from
microsoft,
extensions,
caching,
abstractions
and
and
microsoft
asp.net,
core
authentication.
C
Can
we
make
one
to
unify
them
all
whether
that
be
actually
unifying
the
types
which
is
hard
or
the
new
use
this
one
going
forward
type,
but.
D
A
C
C
A
G
D
C
Right
so
dark
gray,
we
have
using
the
idiom
that
a
is
american
and
he
is
european.
We
have
the
american
spelling
as
then
we
spell
it
dark.
C
C
Well,
so
it
says
that
we're
missing
words
here,
but
we
have.
We
have
dark
gray.
We
just
spell
it
a
y
instead
of
e
y
and
we
could
add
both
because
they're
both
css
terms,
but
I
just
I
don't
the
like
half
of
these
gotcha
actually
all,
but
one
are.
D
C
And
this
may
be
a
just
spelling
unification
problem.
We
don't
seem
to
have
known
color,
rebecca
purple.
D
D
A
Know
if
we're
trying
to
match
it
here,
no,
I
think
they
just
I
mean
I
guess
it
wasn't.
I
think,
intended
to
literally
match
the
names.
I
think
it
was
just
well,
you
have
a
bunch
of
names
and
what
would
you
turn
to
to
determine
named
colors
right,
starting
with
css,
seems
a
reasonable
starting
point.
It's
just
that
the
framework
went
with
enus
for
spelling
of
identifiers,
so
I
guess
to
see
their
standard
did
not.
C
A
So,
what's
the
verdict,
then
I
mean
I
to
be
honest.
My
verdict
on
this
is
that
this
would
be
string
parsing.
I
would
be
okay
with
supporting
both
if
this
is
exposing
literally
like
named
enums
and
named
fields
duplicating
everything
feels
wrong
to
me,
like
that
seems
in
the
end,
in
the
vicinity
of
like,
according.
C
To
apisof.net
there
are
zero
occurrences
of
g
r
e
y
and
net,
and
there
are
many
g
r
a
y's.
A
C
It
would
be
the
same
as
saying
that
we
should
you
know
alias
every
authorized,
with
a
z
to
authorize.
C
C
C
A
C
D
A
G
Extensions,
yes,
I
just
let
me
check
yeah,
that's
the
one
I
actually
just
added.
There
was
a
conversation,
but
it's
on
a
six.
Oh
I'm
not
sure
if
you
guys
are
not
are
looking
at
six
yeah.
G
Okay,
there
was
so
basically
I
just
followed
the
conversation
in
there.
I
haven't
tried
the
sample
or
anything
myself,
but.
A
A
G
A
Any
of
them
are
like
I'm,
I
mean
it
basically
looks
like
so
in
the
existing
one.
So
there's
basically
one
overload
that
takes
a
config
one
that
takes
the
config
and
the
configure
builder,
and
then
this
one
would
basically
be
config
path
and
configure
builder.
I
don't
think
I
would
make
the
configure
builder
optional,
because
that's
already,
I
guess
I
would
because
the
existing
configuration
ones
yeah,
yeah,
basically
yeah.
So
logically,
they
want
to
add
two
new
overloads,
because
the
existing
ones
basically
support
a
binder
and
non-binder.
A
F
C
A
Do,
oh,
I
see
so
it's
actually
yeah,
so
this
is
given.
I
just
learned
asp.net.
I
can
actually
talk
to
this,
so
the
config
path
is
not
an
actual
path
to
disk.
It's
a
colon
b,
colon
c
because
you
have
whatever
ends
up,
but
you
know
you
have
a
configuration
file
that
is
usually
hierarchical
right
where
you
have
like
you
know
my
my
business
logic
area
and
then
under
the
business
logic
area.
A
I
have
a
logging
area
and
under
that
I
say
the
logging
level
right,
and
so
you
would
then
say
business
logic
hold
on
login
colon
level
right,
and
so
this
basically
allows
you
to
bind
parts
of
the
configuration
to
a
particular
t
options.
Type
and
so
options
is
basically
their
automatic
serialization
from
the
json
configuration
type
into
something
strongly
typed
configuration
is
basically
just
a
glorified
dictionary,
accessor
versus
options.
It's
just
some
dot
net
type
that
the
dcl
has
to
shoot
into.
D
So
we're
currently
taking
an
eye
configuration
so
we're
saying
user.
You
extract
it
for
yourself
and
this
new
overload
is
saying,
give
us
the
path
we'll
extract
it.
Do
we
have
other
builders
that
support
this
same,
the
same
duality
of
taking
a
configuration
versus
taking
a
path.
A
The
options
is
very
specific
to
this
right
because
normally,
when
you
take
a
configuration,
you're,
just
basically
keying
into
that,
but
options
is
basically
the
strongly
typed
view
of
our
configuration
right.
So
then,
I
think
it
only
makes
sense
for
options
not
for
anything
else.
A
A
They
used
section
name
in
other
areas,
but,
like
section
name
usually
is,
as
david
pointed
out,
usually
just
effectively
not
a
fully
qualified
path.
It's
usually
just
a
and
then
basically
it
means
you
know
the
the
root
property
name,
a
that's
the
section
versus
in
practice.
That's
often
not
the
case
right.
C
I
mean
so
section
instead
of
config.
If
that
makes
no
sense,
then
then
ignore
me,
but.
D
D
A
A
A
That's
a
good
question,
so
I
would
generally
say
this.
I
would
say
it
depends
on
the
relative
delta,
in
my
opinion,
like,
if,
if
there's
a
massive
new
feature,
where
it's
reasonable,
to
factor
this
into
a
separate
set
of
types,
I
think
we
should
so
we
kind
of
did
this
for
eccles,
where
we
kind
of
instead
of
sprinkling
the
echo
apis
all
over.
We
made
them
extension
methods
that
seems
reasonable
for
configuration
state.
That's
probably
a
pain
in
the
ass,
though,
because
how
do
you?
C
D
C
A
To
me,
it's
kind
of
like,
as
I
said,
like
it's
relative
complexity,
right
like
if
the
thing
is
kind
of
like
a
a
vertically
clean
abstraction
today
and
there's
only
one
or
two
words
in
it,
then
I
think
it's
fine
or
it's
a
reasonable
thing
to
say:
let's,
instead
of
dumping
more
stuff
onto
it,
let's
have
it
on
the
side,
but
the
existing
thing
already
is
kind
of
grown
from
a
windows,
only
thing
to
something
else
like
console
for
example,
then
I
think
it's
better
to
just
say
screw
it.
D
Yeah,
I
don't
know
if
load
that
credentials
only
make
sense
and.
D
C
C
C
So
it's
it's
like
registering
a
shared,
username
and
password,
but
only
for
one
account
for
all
network
usage
for
this
process.
D
D
C
Like
I
think
this
is
for,
if
you've,
if
you're
launching
a
password
with
an
exis,
explicit,
username
and
password,
it's
saying
use
that
as
the
credentials
for
the
network.
Don't
change
the
current
user
for
the
lending.
A
C
So
it
would
run
as
it
would
run,
as
you
know,
jabarton
if
it's
looking
at
the
local
file
system,
but
then,
if
it
starts
talking
to
you,
know,
vsts
or
whatever
we
call
that
these
days,
then
it
would
be
whatever
username
and
password
were
put
in
the
process
start
options.
D
Yeah,
that's
that's
fine.
I
mean
it's
not
going
to
be
used
for
all
networking
like
things
have
to
to
use
the
windows
credentials.
I
guess
so,
but
I
think
people
looking
for
this
will
see
we'll
see
it
and
understand
what
it
means.
C
Are
you
gonna
go
ahead
and
paint
it
in
the
proposal
with
minimum
os
windows?
Seven.
A
A
A
Yeah,
why
would
you
not
it's?
Basically,
you
just
return
two
things,
but
you
return
a
name,
a
string
and
a
value
right.
C
Oh,
this
is
totally
new
stuff.
I
I
was
assuming
this
was
one
of
the
many
places
that
we
had
a
thing
that
returned
object
and
they
wanted
it
to
be
strongly
typed.
A
C
C
A
D
C
A
Yeah
so
like
when
you
look
at
the
code
symbol
that
he
has
there
right.
Basically,
it's
just
it's
values
and
names,
and
he
just
wants
to
get
both
of
them
right
as
a
typed
version
that
one
accelerating
that
to
something
that
returns
key
value
appears
seems
reasonable
to
me.
But
as
soon
as
you
want
full-blown
reflection,
I
would
say
like
well,
then
you
go
reflect
over
that
type.
C
Right,
but
I
don't
understand
why
you
would
write
the
the
first
code,
because
if
you
call
enum.values,
that's
giving
you
back,
the
typed
enum
number,
which
means
twostring,
is
its
name
so
calling
the
one
gives
you
the
both.
D
D
D
C
Yeah
I
mean
like
it
yeah
that
wouldn't
would
be
interesting,
and
certainly
it
probably
would
have
also
broken
the
example
as
written,
because,
presumably
the
names
comes
back
longer
than
the
values.
D
C
A
A
I
have
some
sort
of
like
description
attribute
on
it
and
then
I
just
do
some
model
mapping
where
you
know
in
my
mortal
life
in
enum
and
that
in
the
ui
I
want
to
display
some
nice
values
right
and
that's
what
he
does.
But
I
I
mean
this
code
here
is
also
not
the
prettiest
in
the
world
right,
but
then,
if
you
actually
add
the
one
line
of
reflection
code
above
that
like
it,
that
does
not
change
the
code.
D
A
That
I
have
with
this
api
is
like,
on
the
one
hand,
side,
we
talk
super
low
level
right,
we
have
enums.
On
the
other
end,
we
have
something
super
high
level.
Like
a
you
know,
a
reflection,
introspection,
accelerator
api
and
I'm
I
don't
know
it
seems
like
a
very
weird
specialization
for
a
place
where
I
don't
know.
Is
it
that
common.
A
Yeah,
if
you
just
wait
for
10
seconds
so
there's
this
code
sample
that
he
has
where
he
says
my
inum
value
equals
something.
Then
he
says,
give
me
the
description
for
that,
and
so
he
would
normally
go
by
reflection
to
say,
get
customer
attribute,
blah
blah
blah
type
of
description
attribute
and
then
get
the
description.
A
A
A
A
A
C
Yeah
and
we
can't
add,
get
member
because
enum
extends
type
and
type
already
has
git
number.
A
Type
we
have
custom
attribute
extensions
in
custom,
attribute
extensions.
There
is
one
on
member
info
that
you
can
just
say
get
custom
attributes
of
t,
so
you
would
just
say:
get
customer
attributes
of
description,
attribute,
dot,
single
or
default
question
mark
dot
description,
that's
very
close
to
what
he
wrote
here.