►
From YouTube: GitHub Quick Reviews
Description
Powered by Restream https://restream.io/
A
Hello
friends.net,
so
we
are
back
with
an
api
review.
Hopefully
it's
working
because
jeremy
hasn't
streamed
in
a
while,
so
I
totally
blamed
him
and
it
doesn't
work.
So
I
think
today,
we'll
start
with.
I
think
this
is
also
part
of
the
open,
telemetry
work
right
or
is
it
unrelated
to
that
turret.
B
All
right,
you
go,
you
go
yeah.
Okay,
can
you
scroll
down
a
little
bit
just
to
get
the
whole
proposal?
Yeah?
Okay?
So,
basically,
if
you
remember,
we
have
the
activity
class,
which
is
used
for
collecting
the
tracing
information,
publishing
tracing
and
part
of
this
pro
or
this
proposal
is
about
to
add
what
we
call
it
status
to
the
activity
just
status
to
it.
It's
kind
of
like
indication
if
the
operations
that
we
are
instrumenting
is
is
failed
or
succeeded.
I
mean
something
like
this.
This
is
this
is
proposed.
B
I
mean
this
is
part
of
the
open,
telemetry
specs,
and
this
was
proposed
long
ago,
even
dot
net
5,
but
it
was
not
ready.
I
mean
in
the
in
the
good
shape
I
mean
just
to
port
it
to
the
dot
net
framework,
and
we
we
had
long
discussion.
I
mean
with
the
open
telemetry
about,
like
you
know.
What
should
the
status
looks
like
because
originally
they
they
propose
to
have
like
listing
all
possible?
I
mean
error
codes
inside
inside
the
status,
which
is
cannot
work.
B
I
mean
like
for
the
document
framework
because
they
were
focusing
on
the
rgbc,
gbc
and
rpc
I
mean,
and
and
after
discussing
and
and
taking
like
more
consideration
there,
it's
decided
to
be
like
more
generic
status.
I
mean,
like
you,
know,
telling.
If,
if
the
operation
is
just
succeeded
or
failed,
and
that's
it
so
status
actually
contains
two
things.
I
mean
the.
What
you
call
it
the
status
code
and
just
description
and
description
is
arbitrary
string.
You
can
put
in
the
status.
B
There
are
pretty
cool,
as
the
status
code
is
just
the
num
that
listed
in
the
in
the
top
of
the
proposal.
Here
it
has
just
three
values
unsaid.
It
means
that
nobody
cared
about
it
or
reset
it
or
did
anything
with
it.
And
okay
means
that
I
mean
like
the
operation
kind
of
okay.
B
A
So
one
question
I
have
is
I
mean
I
think
we
have
this
pattern
elsewhere.
I
think
http
or
at
least
on
the
8th
pinnet
side,
has
a
very
similar
pattern
for
the
status
codes.
But
is
there
any
reason
why
we
need
both
the
enum
and
the
struct?
Could
we
just
get
away
with
just
having
the
struct
and
then
just
expose
the
code
as
literally
an
end.
B
I
don't
think
so
what
so,
if
we
wasn't
at
the
end,
I
mean
like
so
this
means
that
anybody
can
put
any
code
there.
A
Well,
I
mean,
I
think
your
constructor
can
still
validate,
but
I
think
it
seems
like,
under
which
circumstances
would
I
have
to
compare
the
code
against
something
strongly
typed,
because
I
would
think
most
of
the
time
you're
comparing
the
activity
status
itself
against.
You
know
the
well-known
members
on
activity
status
like.
Why
would
I
ever
write
status,
dot
code
equals
activity
status,
dot,
something.
C
I
mean
really
tarek.
I
think
the
question
is:
what's
the
description
for
and
how
often
is
it
going
to
get
used,
because
that
seems
to
be
the
reason
that
there's
destruct
is
so
that
there's
this
optional
description
hanging
off,
which
I
don't
even
see
a
way
to
add
it
because
there's
no!
Oh,
it's
up
here.
B
A
A
C
C
That's
probably
boring,
but
with
error
it's
that
you
may
have
a
useful
description
to
go
with
it
right.
B
D
B
B
This
is
a
good
question,
but
yeah,
I
didn't
think
about
that.
F
D
A
A
You
know
they
literally
have
different
contents,
but
then
they
complain
equal
because
both
happen
to
have
a
status
of
okay,
in
which
case,
if
that
is
your
intent,
I
would
almost
say
get
rid
of
the
static
properties
or
fields
in
your
case
and
just
replace
them
with
factories,
so
that
it's
always
clear
that
you
get
a
different
thing
potentially,
because
otherwise
you
have
this
problem
that
people
might
say:
oh
is
activity
status,
equals
activity,
status,
dot,
error
and
then
the
answer
is
no,
because
the
message
happens
to
be
different
right,
but
that
was
not
the
intent
of
the
user
wrote,
but
I
think
you
will
lead
them
down
that
path
with
this
api
shape
like
if
you
compare
this
to,
let's
say
asp.net,
where
they
have
factory
methods
called
okay
and
error
and
both
of
them
take
an
optional
string.
A
B
B
E
A
A
Okay
right
because
like
given
your
api
shape
right
now,
it's
very
it's
very
you
know
it
makes
sense
to
say
activity,
dot,
status,
double
equals
activity,
status,
dot,
error
right
and
now
we,
if
you
don't
fix
the
type,
an
error
message.
No,
we
break
everybody
who
relied
on
that
to
be
true
or
false,
right,
yeah,
which
which,
which
seems
generally,
I
think,
surprising,
for
people.
A
A
To
write
in
the
first
place
and
then
we're
basically
stuck
with,
like
that's
the
constructor,
and
then
people
have
to
dot
into
to
get
the
code.
B
B
Yeah,
I
mean
just
just
people
I
mean,
like
you
know,
while
doing
the
operation
I
mean
like,
if
they
run
into
some
error,
I
mean
they
will
create
the
status
and
set
it
to
the
and
set
it
to
the
to
the
activity.
At
that
time
and
later
I
mean,
while
collecting
the
information
or
listening
to
the
activities
and
getting
this
information,
it
will
get
this
stuff
and
and
the
consumers
it's
up
to
the
consumer.
What
to
do
with
that?
D
F
So
then,
who's
actually
accessing
the
status.
So
the
the
listener
like
when
you,
when
you
emit
activity
at
the
end
of
the
activity
it
will
report.
If
there's
a
listener
and
the
listeners
will
look
at
the
finished
activities
and
decide.
D
F
Yeah
so
so
my
thinking
is,
there
are
two
scenarios.
The
the
main
scenario
would
be
people
who
instrument
their
code
or
instrument
in
the
library
they
decide
like
if
they
make
http
requests
and
it's
quite
natural
for
them
to
decide.
Okay
for
any
http
like
four
four
xx
or
like
5xx,
they
mark
this
as
a
as
a
arrow
and
then
on
the
listener
side.
People
can
crack
this
behavior.
F
For
example,
if
you
have
a
logical
operation
from
high
level
like
editor
storage
blog
and
you
make
multiple
htv
requires,
you
can
tell
in
the
processor
hey
for
this
thing,
I'm
going
to
ignore
that,
because
it's
not
an
error.
In
my
perspective,
I'm
just
doing
long
polling
or
something.
So
you
can
change
that
back
to
okay,
then,
from
the
consumption
side,
when
people
send
that
to
the
backend,
they
won't
be
able
to
get
all
the
error
like
as
noise.
H
F
Request
you
check
the
http
response
and
decide
whether
it's
error
or
not,
and
by
setting
up.
D
F
Yes,
it
is,
but
instead
of
checking
the
status
here,
they
check
the
other
properties
like
from
from.
Like
other
storage
cloud,
you
can
imagine
if
they
made
multiple
underlying
http
requests
and
some
of
them
failed.
They
could
have
a
extra
piece
of
logic
like
a
listener
and
say
for
this
underlying
http
to
set
status
as
arrow,
but
I
think
it's
fine
for
all
the
operations
that
enter
this
like
url
I'll,
just
reset
everything
back
to
okay.
F
D
F
B
F
Yeah
and
back
to
the
question
like
whether
we
can
set
that,
instead
of
having
activity
status
as
a
struct,
whether
we
can
treat
them
to
a
separate
fields
on
activity,
I
think
it
from
my
perspective.
It
is
doable,
and
this
is
what,
like
we
experiment
in
open
time.
She
seems
to
be
working
to
me
on
one
side.
I
see
a
potential
issue
just
want
to
get
people's
idea.
So
if
someone
is
trying
to
set
the
status
code
as
like
onset
and
then
they
set
description
to
something,
we
don't
want
to
allow
that
situation.
D
Things
sorry,
the
scenario
you
just
described
when
someone's
looking
at
tags
and
baggage.
Doesn't
that
mean
there's
a
bunch
of
things
on
the
activity,
not
just
the
description
that
are
related
to
the
error,
so,
if
they're
having
to
reset
some
things,
why
wouldn't
they
just?
Why
is
it
not
okay
to
just
have
to
know
to
change
everything?
That's
relative.
F
So
from
from
my
perspective,
like
the
status
thing
description
and
the
the
status
code
has
a
tight
relationship,
if
you
look
at
the
state
machine,
it
won't
make
sense
if
you
have
status
on-site,
where
you
have
description,
I
I
don't
see
similar
restrictions
on
other
texts.
B
B
It's
we
have
to
standardize,
I
mean
like
at
the
end
I
mean
like
we
have
to
define
the.
What
is
the
semantics
at
the
time?
What
is
the
name
of
the
key?
I
mean.
What
is
that,
so
it's
it
it's
impossible,
but
it
will
not
be.
I
mean
like
we
have
to
make
sure
that
everybody
understand
like
if
you
have
this,
this
key
name
in
the
tags.
This
means
that
this
is
a
area
of
description
which.
D
F
For
for
tax,
it's
more
like
a
semantic
convention
and
people
could
mess
that
up
like
if
someone
is
trying
to
set
tag
where
it's
supposed
to
be
an
integer,
they
could
the
api,
wouldn't
stop
them
from
setting
that
as
a
string
or
like
boolean
value
and
having
this
one
will
give
you
better
like,
like,
I
guess,
better
developer
experience.
It
gives
you
strong
time.
A
Yeah
I
mean
so.
My
other
question
is
so
like
I'm
not
opposed
to
the
innovation.
It's
just.
It
just
seems
weird
to
have
two
ways
to
compare
it
right.
If
you
just
remove
the
onset,
okay
and
error
field
from
activity
status,
I
think
that's
halfway
there
I
mean
I
kind
of
agree
with
stephen
that
it
seems
a
bit
weird
to
to
to
have
these
things
together
when
you
really
expect
people
to
check
them
individually.
A
My
other
question
was
like:
do
you
want
to
have
some
sort
of
method
on
activities
that
is
similar
to
what
we
have
on
http
status?
Or
you
can
say,
you
know
ensure
success
or
whatever,
and
they
will
basically
just
check
whether
the
thing
is
okay
and
otherwise
throw
or
something
because
I
mean,
if
you
ever
extend
the
set
here
from
okay
error.
A
F
B
C
I
mean
looking
at
the
I
mean
it
will
be
spec.
I.
C
F
A
B
F
This
is
related
to
the
over
time
feedback,
so
I
I
can
explain
here
so
the
idea
is
for
instrumentation
library
like
http.
You
don't
know
whether
when
like
when
http
error
happened,
you
don't
know
from
the
consumers
that
whether
the
thing
is
okay
or
not
so
your
best
bet
is
either
you
just
do
nothing.
You
leave
that
as
onset
or
you
tell
people
from
http
perspective,
I
think
it's
an
error
and
then
from
your
upper
level
they
might
decide.
Okay
from
my
side,
I
I
think
I
don't
care.
C
In
a
you
know,
website
tracing
logs
that
would
you
know
say
not
specified,
would
be
the
because
really
it's
just
that
you
created
one
of
these
activities
and
then
you
never
give
it
a
you,
never
give
it
a
value.
So
if
we
believed
it
was
really
a
boolean
that
would
never
expand
it's
just
nullable
boolean,
which
is
the
the
caller
didn't
tell
me
if
they
succeeded
or
failed
go
figure
it
out
from
some
of
the
inner
messages.
B
C
C
F
B
Also
also,
we
have
activity
current,
which
is
stored
in
the
as
async
local,
which
is
like
anybody
in
the
stack
can
can
can
request
this
object
and
do
something
with
it.
C
Fair
enough,
but
just
the
just
that
the
general
expectation
is
that
you,
wouldn't
you,
wouldn't,
grab
current
and
set
its
status
to
error
that
you
may
add
something
to
one
of
the
bags
to
give
context
to
an
activity.
But
but
you
wouldn't
have
been
like,
oh
and
I
know
now
that
it
failed
like
that,
should
be
the
person
who
created
its
job
granted
it's
code.
So
anyone
can
do
whatever
they
want.
But
I
agree.
C
F
F
C
C
Yeah
and
then
like,
is
it
be
up
to
a
listener
to
be
with
that
when
they're
sending
it
to
the
next
level
that
they
correct
the
bad
state
or
you
know
whatever
like
if
it's
a
the
the
guidelines
are,
if
it's
a
property,
what
or
you
shouldn't
have
property
to
property
relationship,
because
people
could
have
set
them
in
an
order
other
than
you
expect
yeah.
C
The
only
time
that
you
can
know
that
the
object
is
done
is
when
it
res
when
it
gets
to
the
listener,
and
then
they
now
have
to
deal
with
this
being
in
an
invalid
state.
You
could
have
the
set
status
method,
which
you
could
then
throw
if
they
give
a
description
and
the
type
isn't
error,
which
I
think
was
one
of
the
proposals,
but.
B
C
A
A
One
is
called
error
that
takes
an
optional
description
and
then
it's
you
know
very
clear
that
if
you
ever
need
okay
with
description,
you
just
add
an
overload
to
it,
so
it
would
make
it
a
field,
so
you
can
actually
overload
and
then
just
leave
unset
as
a
you
know,
as
the
property
that
you
have
right
now
with
only
property,
and
then
you
know
you
could
do
that
and
then
this,
I
think,
will
discourage
people
from
writing.
Code
like
activity.setters.you,
know
activity.s
double
activity
status,
dot,
something
because
okay
and
error
are
both
methods.
A
Now
so
they're
very
unlikely
to
pick
that
as
a
comparison,
I
guess
that's
the
best
you
could
do
and
then,
if
the
stack
ever
changes,
you
just
add
more
methods
to.
C
C
H
A
Right
I
mean
to
riley's
earlier
point:
I
mean
normally.
The
pattern
when
we
have
properties
of
interdependencies
is
that
you
know
usually
the
the
as
jeremy
said,
the
configuration
can
happen
in
any
order
and
then
at
some
point
you
call
a
method
that
does
something,
and
then
the
method
is
usually
responsible
for
validating
that.
The
the
current
snapshot
of
the
properties
in
in
its
entirety
makes
sense,
and
if
they
don't
you
throw
an
exception
like
invalid
operation
or
whatever.
A
Method
on
activity,
you
would
call
right,
which
you
know
in
fairness,
might
be
late
in
the
game.
J
C
C
Sorry
is
null
if
the
status
code
is
not
error
and
that
having
two
properties
and
one
method
to
set
the
two
of
them
together
seems
to
make
the
most
sense
like
that.
Just
feels
cleaner.
It
gets
rid
of
an
extra
type.
It
gets
rid
of
the
question
of
what
does
equals
equals
mean
when
there's
a
description.
It
just
solves
a
lot
of
problems.
A
Yeah,
it
doesn't
strike
me
as
something
you
would
pass
around
in
isolation.
Like
I
mean
why
would
you
ever
care
about
only
the
status
like
most
likely
you
care
about
the
entire
activity
right.
So
it's
not
one
of
those
things
where
you
know
having
a
convenient
value
representing
both
at
the
same
time
is
super
useful.
B
Yeah
I
I
can
see
that
I
mean
the
only
thing,
as
I
mentioned
about
in
the
future
about
if,
if
for,
for
any
reason,
I
mean
like
over
telemetry
decided
to
add,
like
you
know
like
there
is
generic
status
code,
but
there
is
more
specific
code.
I
mean,
like
you,
know,
yeah,
it's
it's
okay,
but
the
specific
code
would
be
something.
A
Else,
for
example,
I
mean
one
thing
we
could
be
doing
is
like
I
would
be
okay
with
saying
you
know,
take
activity
status
right,
keep
it
a
read-only
struct,
remove
the
description
from
it
and
basically
just
make
it
the
strongly
typed
enum
around
the
end
right
similar.
It's
basically
so
that
you
can
actually
add
new
members
to
it
right.
A
So
we
could
do
that
by
basically
having
a
manual
enum
if
you
will,
and
so,
if
you
ever
add
another
feel
to
it,
we
can
right
that,
but
that
wouldn't
be
terrible,
but
I
think
that
that
I
mean
that's
kind
of
on
you
and
like
how
likely
you
think
that
is
because
it
is
a
fairly
heavyweight
thing,
but
probably
it
wouldn't
be
terrible,
because
user
experience
is
almost
indistinguishable,
whether
it's
an
enum
or
you
know
a
hand-drawn
struct.
But
to
me
it's
really.
A
So
if
you
expect
anybody
to
switch
over
it,
the
only
thing
I
would
put
on
there
are
things
that
you
expect
people
to
write
code
for
so
there's
a
sub
category
or
you
know
a
sub
code
or
whatever
sure
that
seems
fine
to
add,
because
you
would
expect
people
to
handle
that.
But
I
would
really
avoid
this.
You
know
you
know,
display
purpose,
stringy
things
coinciding
with
things
that
you
think
are
important
for
checking.
B
Yeah
makes
sense,
I'm
I'm
okay
with
what
proposed
here.
Writing
what
you
think
about
this
proposal.
F
I'm
I'm
fine
with
that.
I
I
think
one
one
thing
is
like
as
long
as
we
make
sure
the
user
from
the
public
api,
they
cannot
set
the
status
to
like
onset
and
they
cannot
set
a
description
for
okay
and
it
should
be
fine,
yeah.
F
That
looks
good
to
me.
I
I
think
it's
very
unlikely
that
open
time
to
later
vote
and
reach
the
status
to
have
more
stuff,
because
initially
it
started
with
a
lot
of
stuff
and
people
decided
it's
not
not
going
to
work
for
everyone
and
they
take
the
very
conservative
approach.
So
I
hope
we'll
be
done
with
that.
K
Just
out
of
curiosity,
instead
of,
why
is
the?
Why
is
a
property
more
interesting
than
like
a
try
get
function
for
not
not
for
the
status
the
status
makes
sense.
It's
the
description.
A
K
A
H
A
I
mean
dictionaries
are
kind
of
weird,
because
null
is
usually
you
know
for
values.
You
know
legal,
so
it's
hard
to
distinguish
these
two,
but
normally
you
would
just
say
the
absence
of
a
value
is
expressed
by
the
value
being
now
that
seems
a
more
intuitive
way
to
model.
C
B
C
I
realized
the
problem
with
you
running
the
meeting,
but
me
streaming
emo.
Is
we
don't
get
the
the
preview
of
the
message.
A
Yeah
I
can
just
post
it,
I
mean
we
will
approve
the
api,
so
make
an
executive
decision
and
avoiding
market
is
approved,
and
now
we
can
just
let
me
just
post
what
I
have
in
my
notes
and
then
everybody
can
read
it.
I'm
gonna
edit
it
from.
F
B
C
Yeah,
all
right
did
you
want
just
set
status
description
to
be
defaulted
to
no.
A
A
J
Yeah,
I'm
here
so
this
is
basically
continuing
the
conversation
that
we
had
about
this
proposal
last
week.
Basically,
we
ended
up
approving
the
elementat
method
overloads,
but
we
stopped
short
of
the
slicing
operation
for
a
couple
of
reasons,
one
was
the
choice
of
name,
namely
there
were
objection,
objections
raised
about
the
use
of
the
name,
slice
and,
secondly,
the
semantics
of
the
the
slicing
operation,
whether
it
should
fail
when
you
know
the
range
is
out
of
bounds
and
you
know
whether
it
should
be
like
a
lazy
operation.
J
J
So
if
you
scroll
down
you'll
see
the
final
form
of
the
proposed
apis,
so
the
idea
is
that
you
know
you
have
the
element
that
methods
that
have
been
approved
already
and
then
you
have
the
take
over
load
that
accepts
non-enumerable
and
range
and
returns
non-numerable
that
matches
the
provided
range
provided
ranges.
If
the
range
is
out
of
bounds,
it
will
return
an
empty
enumerable,
so
it
has
precisely
the
same
semantics
as
take
if,
for
example,
your
input
integer
is
too
big.
J
I've
kind
of
found
that
this
actually
is
very
useful.
If
you
scroll
down
a
bit
more
in
the
original
post,
there
is
a
quote
here
where,
for
it
lists
all
the
possible
ways,
you
can
use
the
new
overload
and
which
existing
solutions
it
replaces.
J
So
I
I
really
think
that
this
would
be
a
very
useful
addition
to
our
users,
the
the
implementation
provided.
I'm
satisfied
that
the
implementation,
as
provided
by
the
poster,
is
the
right
one
for
us,
and
it
has
the
precise
semantics
that
I
that
I
explained
so
it's
a
lazy,
enumerable
and,
like
I
said
it,
returns,
elements
that
do
not
match
the
provided
range
are
skipped
completely.
D
J
J
Obviously,
things
get
more
complex
when
you
have
from
end
indices
in
your
range,
and
that
has
you
know
certain
memory
ramifications
but
they're
exactly
the
same
as
element
that
so
you
would
have
potentially
all
of
an
memory
usage
if
you're
doing
crazy
stuff
with
from
end.
J
In
the
case
of
the
in
the
case
of
the
prototype,
no,
so
it's
its
own
implementation,
it's
not
deferring
to
take
and
skip,
and
this
is
primarily
because
these
don't
support
from
end
operations
and
also
it
wouldn't
be
as
efficient,
because
you
would
need
to
use
multiple
cues
in
each
of
the
slices
to
store
the
intermediate
elements.
As
you
try
to
calculate
the
end
of
the
innumerable.
If
that
makes
sense,
fair.
L
A
J
Yeah,
I
it
really
eliminates
the
ambiguity
in
terms
of
how
should
this
behave.
It
should
behave
exactly
the
same
way
as
the
existing
take,
but
now
it
kind
of
replaces
you
know,
skip
skip
blast
and
take
last
in
one
go,
and
I'm
really
happy
with
that.
C
Or
questions
you
said
all
right,
so
we
feel
that
queryable
can
do
this
without
being
a
bit
of
failure,
and
I
think
you
said
you're
we're
not
doing
it
for
plink
and
just
making
sure
that
those
are
the
the
correct
states
and
that
we're
happy
with
that
state.
J
Yeah,
so
obviously
we
do
not
expect
you
know:
query
providers
to
fully
support,
take
the
requirable
take,
but
just
implementing
it
is
the
preferable
approach
comparing
to
people
accidentally
defaulting
back
to
the
innumerable
implementation.
A
Fair
enough,
so
does
that
mean
so
like
I'm
still
not
sure
what
you
said
so
is
it
basically,
like
a
query
provider,
there
will
be
a
default
implementation
of
the
take
with
the
range
that
will
do
something,
but
a
query
provider
can
also
choose
to
specialize
it
into
something.
Custom
is
that
is
that
correct.
J
We
we
had
a
conversation
of
which
the
details-
I
can't
recall
at
the
moment,
but
it's
in
the
thread
we
kind
of
decided
to
not
explore
that
option.
For
the
moment,
fair
enough.
C
D
I
would
only
do
it
if
we
actually
find
a
strong
reads
and
students,
okay
for
the
most
part
for
the
like
the
99
case
of
p-link.
Is
you
know
where
select
order
by
or
some
subset
of
you
know
that,
and-
and
definitely
I
wouldn't
do
this
until
we
did
or
out
of
the
other
operations
that
we
haven't
yet
had
like
take
last.
C
J
H
Correct
so
this
analyzer
already
exists
in
the
vs
threading
repo,
which
has
some
existing
analyzers,
but
it
never
got
turned
on.
H
It
seems
that
it's
pretty
stable,
so
this
is
a
first
party
request
and
since
it
has
already
been
developed
and
stable,
if
we
agree
on
bringing
it
or
turning
it
on
and
wrestling
analyzers.
H
H
So
what
this
analyzer
does
is
is
it
would
find
any
method
implications
in
the
in
inside
an
async
method
and
see
if
they.
H
That
is
asynchronous
and
suggest
changing
the
method
into
that
overload.
If,
if
the
same
arguments
can
be
applied,
basically.
D
I
I
J
D
Are
patterns
throughout
the
code
base
where
we
have
a
single
code
path
that
passes
along
a
boolean
flag
as
to
whether
it's
actually
sync
or
async,
and
then
in
the
least
node.
It
says
if
async
await
through
async
else,
foo
so
it'll
flag.
You
know
all
those
cases
there
are
places
where,
for
whatever
reason,
we
we're
already
sure
that
the
thing
has
completed
and
we
use
either
dot
results
or
get
away
or
not
get
results
to
propagate
exceptions.
All
of
those
get
flapped.
H
D
Yeah,
I
think
I
have
no
problem
with
in
general,
enabling
this
in
an
analyzer.
I
think
what
it
comes
down
to
will
be
some
fiddling
in
the
analyzer
itself
to
kind
of
strike
the
right
balance
when
it
is
enabled
choosing
the
right
default
setting
in
general,
which
is
probably
info
and
then
choosing
what
to
do
in
our
own
repos.
D
A
H
Okay,
but
it's
necessary
by
a
first
party
team
and
they
want
it
to
be
enabled
so
they
can
consume
it,
but
we
don't
want
it
to
be
noisy
in
a
repo
can't.
We
approve
it
with
us
as
hidden.
C
Yeah
I
mean,
like
I,
don't
see
any
problem
with
taking
a
thing
out
of
vs
analyzers
and
moving
it
into
the
roslyn
analyzer's
default
package
if
it's
with
a
default
of
off
and
that
maybe
we
can
decide
later
that
it
can
be
a
default
of
higher
than
off,
but
right
yeah.
Personally,
I
don't
see
a
problem
with.
Let's
just
move
this
into
a
different
dll
and
then
the
the
rest
of
it
of
hey.
We
want
to
change
it
to.
C
We
want
to
add
the
following
concepts
to
it,
and
then
we
think
we
can
turn
it
on
by
default.
At
this
severity
would
be
a
different
discussion.
A
And
I
guess
it
boils
down
to
like
what
you
think
the
approval
is
for
right
to
me.
It
seems
it's
kind
of
like
saying
you
know,
let's
improve
an
api
and
then,
let's
discuss
the
shape
of
the
api
later
like
it
seems
like
we
want
to
improve
effectively
what
we
think
the
right
severity
is
right.
In
one
place
I
mean,
I
think,
the
analyzer
to
me.
It
makes
sense
to
have
right.
I
mean
that
I'm
not
objected
to
that.
A
It
just
seems
like
if
we
wanted
to
start
you
know
discuss
on
by
default
off
by
default
severity,
then
you
kind
of
want
to
have
the
data
to
make
the
determination,
and
while
the
runtime
repo
isn't
entirely
representative
of
customer
code,
it's
probably
a
good
indicator
for
what
are
the
corner
cases?
We
should
consider
right.
C
Definitely
corner
cases,
but
we
also
do
a
lot
of
things
that
we
don't
expect
anyone
else
to
do
right
or
a
few
people
that
say
yeah
right.
A
M
D
H
Oh
okay,
that's
good
to
know
fair
enough.
C
And
yeah,
that's
a
good
so
then
being
able
to
identify
here
are
some
classes
of
problem
that
we
think
that
we
should
improve
before
turning
it
on
would
would
maybe
be
good.
So,
okay
yeah,
my
my
general
feeling,
is
yeah.
Obviously
vs
has
done
this.
I
think
resharper
has
done
this.
I
don't
know
how
they
are
on
their
edge
cases.
The
it
seems
like
a
reasonable
analyzer
to
have
the
but
the
devils
and
the
details
of.
Is
it
providing
value
or
is
it
something
someone's
going
to
shut
off,
because
it's
too
noisy.
B
A
A
Here
we
go
so
I
guess
the
action
item
is
just
run
it
over
the
repo
walk
over
the
results
and
then
see
what
what
do
you
think
is
a
reasonable
proposal
for
severity.
A
N
N
N
N
Yes,
the
first
two
are
basically
getting
and
setting
the
system
error
and
then
the
set
last
win32
error
is
really
setting
the
last
platform
invoke
error.
It's
naming
matches
the
get
last
winter
to
error,
which
is
admittedly
not
an
ideal
name.
C
K
C
C
N
N
N
Yeah,
it's
like
the
other
option
is,
to
just
add
a
new
pair.
That's
like
set
and
get
last
p
invoke
instead
of
the
132,
and
then
we
have
the
weird
get
last
132
error
that
basically
does
the
same
thing
as
the
new
get
blast
piano.
C
A
N
Yeah
the
listed
as
ultimate
designs
for
adding
a
new
pair,
I'm
not
sure
if
last
painting
error
makes
sense.
A
A
I
Me
check,
but
I
think
we
did.
We
do
yeah,
there's
a
p
invoke
marshall
class.
C
That's
fine.
Actually,
I
know
that
it's
a
concept
that
people
understand
yeah
or
think
they
understand,
but
the
I
just
wanted
to
make
sure
we
weren't
introducing
the
words
for
the
first
time
when
we've
been
using
other
words
elsewhere.
But
if
we've
already
used
it,
then
that's
my
concern.
A
So
we're
adding
four
methods,
get
last
system
error
set
last
system
error
get
last
p
invoke.
Error
set
last
p,
invoke
error
and
then
the
obsolete
get
last
win.
32
error
with
use,
get
last
system
error
or
get
last
win
or
get
last
p
invoke
error
question
I
guess
now
is:
do
we
bother
with
the
diagnostic
code.
C
I
would
because,
if
somebody's
cross-compiling
they'll
need
to
call
the
method
that
still
existed
in
net
standard,
2o
and
that'll
give
them
just
a
like.
Yes,
I'm
aware,
I'm
cross
compiling
just
stop
telling
me
about
this.
C
C
From
for
many
people,
it's
probably
doing
what
they
want,
but
for
some
of
them
it's
not
and
we
could
write
an
analyzer
to
do
the
yeah.
We
could
write
an
analyzer
replacer
to
just
let
you
say,
replace.
A
N
Yeah
and
trapping
is
explicit
action
on
the
pin
box.
You
have
to
say
I
want
to
trap
there
for
the
speaking
books
right.
A
Yeah,
I
think
that
conceptual
difference
to
me
makes
it
worthwhile
to
obsolete,
probably
not
for
existing
code,
but
probably
for
anybody,
who's
writing
new
codes.
So
I
think
the
fact
that
we
can
also
fix
the
naming,
I
think,
is
just
sugar
on
top
of
that,
but
I
think
it's
actually
good
that
we
can
actually
also
rename
it
to
make
it
very
clear
that
there's
a
conceptual
path
break
now
that
you
have
to
consider
yeah.
C
Yeah,
I
think,
an
analyzer
as
a
replacement
rule.
Unless
I
mean
I
guess
the
replacement
rule's
easy,
you
find
all
calls
too
it's
just
the
text
replacement
marshal.
That's
that
last
one
32
error
to
marshall
dot.
Sorry
get
last
to
marshall.get.
Last
p
invoke
error,
and
now
all
your
warnings
go
away
so.
C
C
Presumably,
you
want
to
use,
get
last
system
error
or
get
last
p
invoke
error,
not
get
less
system
error
or
set
last
pn
book
error,
but
the
strings.
J
Yay
so
again,
this
is
a
link.
Community
request
basically
concerns
you
know
whenever
you
want
to,
for
example,
copy
an
innumerable
into
a
buffer.
Occasionally
you
want
to
make
sure
that
if
you
can
somehow
tell
the
size
of
the
innumerable
without
enumerating
through
the
entire
thing,
so
in
many
cases
you
have
users
that
would
typically
just
do
ad
hoc
type
tests,
testing
all
uri
collections,
and
I
read
only
collections
and
what
have
you
potentially
missing
out
on
stuff.
J
Because
of
the
nature
of
the
method,
it
is
actually
defined
as
a
static
method
rather
than
an
extension
method,
and
it
has
this
peculiar
name,
so
you
would
have
to
call
it
using
enumerable
dot.
Try
getting
on
a
numerable
count,
not
an
enumerated
count.
It
would
return
true
if
the
count
could
somehow
be
obtained
via
type
tests
and
return
false.
If
we
cannot
do
that.
J
I
C
A
C
A
Yeah,
I
was
able
to
say,
like
I
think,
chaining
clearly
doesn't
apply
here,
but
I
think
readability-wise
renewable
you
know.
Dot
trig
enumerated
count
of
source
comma
out
of
our
account,
seems
much
more
ugly
than
saying
source
dot
trigger
generated
count
out
of
our
account
right.
It
just
seems
like
you're,
asking
the
person
to
type
in
more
character
for
close
to
zero
gains
like
it
to
me.
It
seems
natural
to
have
an
extension
method
because
you
know,
as
jimmy
said,
it's
logically
part
of
the
the
interface
right.
J
C
Not
all
of
the
things
not
all
of
the
extension
methods
provided
by
the
enumerable
class
are
chainable,
because
you
know
count
returns
an
end
you're
not
going
to
stay
in
enumerable
land
after
that
one
so
yeah
sure.
I
think
it
is
a
reasonable
extension
method,
because
it
is
like
all
the
other
things.
On
an
interval
I
mean
the
added
benefit.
C
A
I
Pool
just
to
confirm
the
implementation
of
this
would
probably
try
casting
to
something
like
eye
collection,
or
I
read
only
collection,
and
I
know
that
the
account
property
is
a
property.
But
do
we
guarantee
that
a
total
of
one.
I
A
A
M
A
I
We
can't
the
the
the
reason
that
I
was
kind
of
going
in
on
this
is
I'm
I'm
checking
msdn
and
msdn
doesn't
say
that
it's
01.,
so
I
I'm
trying
to
figure
out
if,
realistically,
there
might
be
a
significant
number
of
I
collection,
derived
types
that
do
this
as
an
event
operation.
J
A
I
mean
in
fact
we
asked
people,
don't
take
a
collection
right,
take
a
numerable
and
then
try
to
get
the
count
via
the
you
know
costing
right
and
we
never
provided
a
method
to
do
it.
So
I
think
it
seems
reasonable,
but
strictly
speaking,
customer
interface
is
also
not
an
one
operation
right,
because
you
have
to
potentially
find
multiple
interfaces
and
like
jump
to
the
correct
method.
So
you
know
it's
interface
dispatch,
so
it's
already
not
the
fastest
in
the
universe,
but.
A
A
J
Hey,
okay,
so
yet
another
community
api
proposal.
In
this
case
it
basically
concerns
implementing
a
chunking
method,
especially
if
you
want
to
sort
of
do
a
bit
of
parallelism.
I
I
found
this
is
like
a
particularly
useful
method
to
include
people
have
pointed
out
that
you
could
perhaps
achieve
the
same
thing
by
group
by,
but
I
think
just
returning
arrays
of
stuff
might
have
been
more
useful.
J
J
There
have
been
debates
in
this
issue
if
you
scroll
down
a
bit,
I
think
one
misgiving
I
have
with
the
bi
suffix
is
that
it
might
imply.
You
know
some
kind
of
selector
function
as
an
argument,
so
perhaps
just
calling
it
chunk
or
batch,
or
what
have
you
might
be
preferable?
I'm
actually
checking
to
see
what
rx
is
using
for
the
same
thing
at
the
moment.
J
Rx
calls
it
no.
J
A
A
A
O
A
C
I
I
J
I
I
would
say
that,
given
that
you're
looking
to
chunk
things
into
like
definite,
definitely
sized
items,
I
think
something
that
is
more
of
a
I
I
read
only
list
would
be
preferable,
but
I
think
array
is
good
enough.
For
most
intents
and
purposes,
I
don't
know
how
others
feel.
I
Normally,
when
we
return
concrete
types
like
arrays
or
lists,
the
method
name
has
array
list
or
similar
in
there,
because
we
say
as
part
of
the
contract
we
are
giving
you
an
array
like
you
can
rely
on
this.
I
I
P
It
would
also
mean
we
could
overload
in
the
future,
because
if
we
just
call
it
chunk
by
returning
t
right,
we
can't.
J
P
So
just
a
comment
here:
kind
of
going
on
what
levi
said
about
I
enumerable
by
innumerable.
If
we
did
that,
we
could
actually
make
this
more
efficient
by
saying
we're
returning
an
I
enumerable,
the
user
shouldn't
cache
it
and
therefore
they
can't
rely
on
like
the
underlying
array
being
not
reused
or
things
like
that
right.
Because
if
we're
doing
t
array
here,
then
we
can't
actually
return
a
struct
numerator
or
anything
else.
We
actually
have
to
allocate
every
time.
J
C
C
I
O
It's
also
only
efficient
of
you
if
you
disallow
enumerating
the
any
given
sub
innumerable
more
than
once,
which
seems
weird.
C
Yeah
I
mean
you
could
complexly.
If
you
were
doing,
I
enumerable
of
I
list
and
say
that
the
value
is
not
guaranteed
after
you
call
move
next.
Is
you
just
use
the
same?
I
list
and
call
clear
each
time
and
you
just
return
the
same
thing
from
current
every
time,
but
that
would
be
that
would
be
mean
sneaky.
C
A
Yeah,
it's
also
like
considering
people
use
this
thing
right.
They
will.
I
mean,
as
jeremy
said,
when
people
want
to
write
compact
code
right,
they
will
probably
just
probably
also
just
do
a
two-way
at
the
end,
I
don't
think
most
people
even
care
about
the
streaming
of
this
api
in
the
first
place
right,
so
I
I'd
be
shocked
if
that
would
ever
allow
us
to
write
something
that
is
substantially
more
efficient
for
most
call
sides.
A
E
I
So
in
one
of
the
comments
that
I
left
in
chat
is
that,
like
all
link
extension
methods,
this
ends
up
on
string
as
well.
If
you
call
string,
dot,
chunk,
buy
and
just
get
a
bunch
of
char
arrays
back
you're
gonna
be
in
for
a
bad
time.
If
you
try
to
operate
on
them
because
you're
going
to
have
split
the
string
in
arbitrarily
different
ways
like
you
can't,
you
can't
do
anything
useful
with
them,
like
you
can't
do
case
conversion
on
them
independently.
I
You
can't
do
any
type
of
like
transcoding
on
them
independently
and
so
on.
You
basically
have
to
treat
it
as
opaque
data
at
that
point
again,
it's
just
by
virtue
of
it
being
a
link
method,
I'm
just
trying
not
to
leave
people
down
the
path
where
they
could
get
into
problems.
A
A
C
Mean
one
could
like
if
the
argument
is
called
max
size,
one
could
say
that
we're
at
a
string
and
you
passed
five,
but
it
sees
that
between
five
and
six
is
a
surrogate
split
that
the
first
one
returns
four
and
then
the
second
one
returns,
starting
at
five
like
if
it
says
max,
there's
no
guaran.
We
don't
have
to
guarantee
that
it's
the
that
it's
square
until
the
last
element.
I
C
Yeah
string
has
to
char
array.
If
we
called
this,
you
know
the
more
wordy
two
chunked
arrays
then.
B
C
I
That
is
correct.
Yes,.
A
I
mean
I'm
not
opposed
to
two
chunk
array
I
mean
like
it
has
a
nice
or
two
chunk
to
raise
because
it
has
a
benefit.
If
you
actually
search
for
two
array,
I
think
it
will
also
show
this
in
entire
sentence.
I
believe,
and
so
it
seems
beneficial
yeah.
I
mean
the
two
one
is
a
bit
weird.
As
I
said
earlier,
because
it
kind
of
implies,
we
don't
stream,
we
just
consume
everything
which
we
don't,
but
I
mean
we
certainly
consume
intermittently
right.
So
it's
not
like
we're
not
eagerly
consuming
the
animal
right.
J
H
D
A
C
P
So
why
wouldn't
we
be
able
to
have
a
more
efficient
implementation
with
ionu
ebola
by
enumerable,
because
with
innumerable
bioenumerable,
you
could
hold
the
innumerable
and
have
a
you,
could
just
hold
the
overall
enumerable,
its
current
position
and
an
integer
tracking?
How
many
you
iterated
so
far.
C
Yeah
I
mean
like
my
feeling,
is:
if
you
do
this,
one
of
the
things
you're
going
to
want
to
look
at
in
the
chunks
is
how
long
each
chunk
is.
I
could
be
wrong.
I,
like
I,
don't
have
a
use
for
this,
so
I'm
speculating,
and
once
we
have
that
then
now
we
want
something
richer
than
I
enumerable
and,
as
we
start
to
go
richer,
we're
just
ultimately
being
an
array
and
then
we
should
just
be
honest
and
give
them
the
array,
so
they
get
array
benefits.
C
A
It's
already
so,
let's
say
so.
Let's
say
we
return
any
movable
of
t
array
right.
In
that
case,
the
only
thing
I
have
to
do
is
call
t
array.
So
I
call
two
array
on
the
whole
thing
and
now
I'll
have
an
array
of
arrays,
which
is
probably
what
most
people
want
to
work
with,
would
be
my
guess,
because
this
is
not
an
api
that
you
use
for
high
performance
scenarios
right.
A
You
would
just
write
your
for
loop
by
hand,
and
so
I
I
feel
like
if
you
know,
return
animal
via
enumerable,
but
then
it's
just
as
me
calling
two
array
now
I
have
to
also
do
you
know,
dot
select
and
then
you
know
x
goes
to
x,
dot,
two
array
and
then
two
arrays.
So
like
it's,
it's
a
lot
more
characters
than
just
yeah
yeah.
I.
P
A
P
The
other
benefit
of
link
isn't
just
because
you
don't
want
to
write
performance
code
or
you
want
to
write
simple
code.
It's
also
because
you
want
to
write
lazy,
enumerated
code,
in
which
case,
if
we're
doing,
if
we're
returning
an
innumerable
phrase,
then
we're
not
really
being
lazy.
We're
just
partially.
A
C
Opinion
I
mean
as
a
concept
question
and
feel
free
to
shoot
me
down
on
this.
Would
it
be
better
to
have
public
static
ins?
Take
this
I
enumerable
of
t
source
comma
span
of
t
of.
C
C
C
Yeah
well
because
I
was
looking
for
a
while,
there's
still
data
give
me
the
next
seven
and
I
already
have
the
buffer
just
fill
it,
but
I
think
that
is
hard
to
write
with
our
with
the
state
machines.
We
have
yeah.
C
C
Yeah
one
of
the
the
comment
from
chat
is
why
not
an
as
instead
of
two,
so
you
know
as
chunked
arrays.
C
Well,
that's
a
bit
of
a
I'm
just
like
if
you,
if
you
call
that
enumerable
but
never
actually
walk
it,
then
it
didn't
do
any
work.
C
Q
Thing
that
I
don't
get
about
sense,
the
thing
that
I
don't
get
about
the
innumerable
of
an
enumerable
conversation
is,
I
ask
for
chunks.
If
I
just
wanted
to
lazy
enumerate
all
of
them,
I
would
just
lazy
enumerate
all
of
them,
but
I
wanted
it
in
chunks
right
yeah.
It's
like
there's,
there's
a
reason.
I
want
them
in
chunks
potentially
to
pass
it
into
another
method
or.
D
O
Data
type
for
it
still
by
returning
an
innumerable
you're,
you're
you're,
suggesting
that
the
ionumbral
can
be
enumerated
multiple
times
over
the
inner
eye.
Enumerable
can
be
enumerated
multiple
times,
which
it's
not
obvious
to
me,
how
you
would
support
that
without
just
allocating
an
array
you
reset
the
original
enumerable.
A
Allocating
the
array
I
mean,
I
think
in
general,
you
kind
of
live
a
long
and
immobile
it's
being
enumerated
multiple
times
without
side
effects.
Right
I
mean
if
somebody
enumerates
stuff
from
the
file
system
and
and
some
one
of
the
selectors
or
whatever
happens,
to
delete
files
or
remove
them
or
do
something
then
enumerating
them
again
will
lead
to
different
outcomes.
Right
so
I
mean
in
practice,
people
like
usually
bad
things
happen
when
you
randomly
enumerate
randomizing
rules
multiple
times
like.
I
would
not
rely
on
that.
C
And
someone
does
want
to
know
the
count
if
we've
implemented
a
efficient
enumerable,
I
guess
we
could
make
it
be
something
that
the
the
that
our
count
method
detects
as
countable,
but
the
the
problem
would
be
now.
You
have
to
call
count
well
that
walked
it,
and
now
you
walk
it,
and
so
now
we
are
making
it
where
the.
If
you
care
about
the
link,
that
is
a
double
enumerate.
P
You
take
the
count
of
the
of
the
total
backing
of
source,
and
then
you
subtract
the
current
index
and
that
lets.
You
know
how
many
you're
going
to
enumerate
in
the
sub
innumerable.
C
But
yeah
I
mean,
I
think
there
was
a
comment
from
youtube
chat
of.
Why
can't
we
have
both
and
that's
part
of
the
reason
we
wanted
to
put
a
raise
in
it
is
we
could
put
as
chunks,
which
is
high
enumerable
by
enumerable
and
is
more
efficient
and
has
chunked
a
raise,
which
is
probably
what's
going
to
get
called
more
of
the
two.
D
P
P
P
C
Right
yeah,
my
gut
says
the
people
who
are
calling
this
don't
care
about
performance
and
that
the
I
enumerable
of
tra
is
more
what
they
want.
But
if
there
are
people
who
are
concerned
about
the
performance,
then
I
think
the
answer
is
the
thing
that
dissatisfies
everyone
which
has
had
both
of
them.
I
There
there
are
some
links
to
some
stack
overflow
questions
in
the
issue.
It
looks
like
around
half
of
the
respondents
returned.
Innumerable
of
I
knew
bowl
of
tea,
but,
to
be
honest,
like
I
don't
know
how
useful
those
answers
were
to
the
original.
I
Posters,
it
looks
like
pagination
was
actually
the
big
scenario.
O
C
P
G
I
D
C
G
C
A
Yeah,
so
I
don't
know,
like
my
gut
feel,
tells
me
I
enumerable
of
trade
is
probably
more
useful
than
I
knew
all
of
my
new
mobile
of
t,
even
though
most
people
will
end
up
using
this
api,
but
it's
just
based
on
my
own
needs.
Whenever
I
needed
chunking,
I
ended
up
creating
race
like
I,
I
almost
never
had
the
streaming
thing,
but
I
also
have
an
an
rx
user
right.
So
keep
that
in
mind
as
well.
I
Code
is
there
a
precedent
for
us
having
a
like
a
corefx
lab
like
package,
where
we
put
a
bunch
of
experimental
link
methods
that
we're
not
sure
if
we're
committed
to,
and
we
just
want
to
get
feedback
on
them.
A
A
P
A
Yeah
yeah,
but
now
we
are
talking
about
like
potentially
nested
loops
with
builders
and,
like
I
don't
know
like
that,
seems
I'm
skeptical,
but
I
mean,
but
even
then
I
mean
honestly
like
how
often
have
I
done
this.
I
haven't
very
often
applied
the
resharper,
refactoring
and
then
just
said
no.
I
don't
want
this
and
then
undo
right.
C
Yeah
to
summarize
a
comment
from
youtube
chat,
it
looks
like
one
of
the
use
cases
is
basically
partitioning
for
plink.
I
mean
they
didn't
say
plink,
but
here
slice
this
in
chunks
of
up
to
like
10
things,
each
and
now
throw
each
of
those
subchunks
off
at
a
different
thread,
but
and
then
again
it's
unclear.
If,
then,
the
answer
is,
how
often
do
you
want
to?
C
A
A
A
A
So
yeah,
but
that
that
I
think,
is
just
staring
at
the
signature.
I
I
think
that's
just.
C
I
mean
yeah,
so
youtube
chat
and
one
of
the
last
comments
on
the
issue
did
also
suggest
the
name
batch
email,
so
you're
in
good
company.
I
mean,
if
we
want
to
do
I
enumerable
of
ion
removable
of
tbatch,
then
sure
people
who
care
about
the
arrays
can.
D
I
mean
I
I
don't.
I
also
like
tanner,
don't
feel
strongly
it's
just
weird
to
me
like
this
is
the
first
time
people
have
added
such
an
api
that
isn't
sort
of
innumerable
based
as
part
of
a
processing
method
rather
than
an
end
method,
and
I
just
it
seems
strange
but
like
no
one
in
done
at
runtime-
is
going
to
use
this
anyway.
So
right.
J
A
A
A
C
If
we're
writing
it
as
an
efficient
thing,
they
would
still
need
to
call
to
array,
because
if
we
reuse
the
same
thing
for
the
second
batch
or
chunk
or
whatever
you
feel
like
calling
it
like,
they
just
sent
the
same
literally
the
same
list
to
all
of
their
worker
threads.
J
Yeah,
I
will
say,
having
like
written
this
method
quite
a
few
times
like
it
always
ends
up
being
a
race,
and
I
I
cannot
give
a
better
reason
than
chunks
feel
like
they
should
be
erased
in
the
first
place
and
in
most
of
my
applications,
which,
were
you
know,
scheduling
partitioned
workloads
in
in
in
in
most
of
those
cases
forgot.
J
What's
going
on
gonna,
say,
but
basically,
basically
array
felt
like
the
natural
choice,
the
yeah,
the
the
allocation
of
the
array,
wasn't
actually
a
dominating
factor
in
what
was
I
was
implementing
in
any
case.
J
So
if
there
was
any
additional
copying
by
virtue
of
the
fact
that
you're
exposing
it
as
an
array
that
didn't
really
show
up
in
my.
A
C
So
returning
the
array
is
honest
and
easy,
and
if
you
want
better
memory
performance
write
it
yourself.
P
P
A
I
mean
we
have
some,
but
I
mean
usually
when
we
see
chunking
it
has
to
do
with
encoding
more
than
anything
yeah
I
mean
I
can't
explain
this,
but
to
me,
chunking
feels
like
colloquialism
that
we
use
when
we
talk
about
implementation,
not
something
that
we
normally
talk
in
apis.
A
Yeah,
it's
all
about
petitioning
earlier
to
me.
Second
and
partitioning
is
kind
of
similar
like
in
both
I
kind
of
think
there
is
a
there's,
a
selector
like
some
sort
of
criteria.
That
decides
which
bucket
that
goes
into
like
batching
to
me
is
a
very
strong.
It's
size
based
buffer
is
a
bit
too
like
you
know,.
G
J
G
A
A
A
Yeah,
I
guess,
if
you
look
at
it,
I
think
it's
obvious
what
it
does.
It's
just,
not
something
that
we've
been
looking
for.
A
A
A
D
And
what
about
queryable
good
question.
J
I
guess
I
should
know
since
I'm
the
owner,
but
I
I'm
not
to
be
very
honest.
I'm
I
don't
know
whether
we
do
have
parity
or
whether
we
test
for
it.
A
A
A
C
Yeah,
because
I
I
don't,
I
don't
think
that
queryable
would
need
it
to
replace
the
implementation
of
saying
it's
returning
as
another
queryable,
so
maybe
just
letting
it
fall
back
to
the
I
enumerable
version
of
at
this
point.
You've
asked
to
walk
it
and
you
just
want
it,
and
you
know,
five
at
a
time
seems
correct.
O
I
All
of
the
evaluation
would
be,
it
would
perhaps
be
a
very
chatty
communication
with
a
back-end
server
when
you
were
expecting
it
to
be
very
optimized,
because
you
were
using
iqueryable
everywhere.
A
C
C
L
I
I
mean
we,
we
approved
the
iqueryable
version
of
of
try,
not
sorry,
not
the
try
get
enumerated
count
the
the
one
we
did
a
few
minutes
ago
that
I'm
blanking
on.
C
And
actually,
we
yeah
because
we
made
it
an
extension
method
on
innumerable
it
means
it
will
show
up
for
I
queryables,
which
means
that
that
previous
extension
method
we
either
need
to
decide
explicitly
and
then
make
the
test
okay
or
would
need
to
add
it
for
queryable.
J
Yeah
and
I
guess
the
rationale
for
adding
the
credible
overload
for
that
previous
issue
was
that
we
would
much
rather
have
the
query
provider
throw
if
it
doesn't
recognize
the
particular
method.
A
Okay,
how
about
this
thing?
So
we
only
have
one
minute
left.
So
let's
say
we
right
in
the
issue
looks
good
as
proposed
and
then
the
only
action
item
is
we
need
to
settle
down
on
the
parity
before
I
knew
mobile
of
between
I
created
one.
I
knew,
but
it
seems
like
a
general
good
thing
for
eric
to
research
and
also
clarity
on
for
future
editions.
A
Okay,
so
then,
let
me
just
paste
this
under
api
needs
work,
so
that
we
have
just
a
follow-up
for
this,
and
then
this
way
we
misuse
this
issue
here
for
tracking
this.
O
Can
I
add
one
last
comment:
sorry
is
max
size,
the
right
name
for
that
in
parameter.
O
P
I
think
the
max
size
just
makes
it
that
tiny
bit
clearer,
that
it
could
be
smaller,
and
that
also
leaves
the
implementation
free
to
adjust
itself
in
the
future
around
utf-8
or
utf-16
string
splitting
if
we
determine
that's
actually
necessary.
O
A
I
A
I
C
I
A
A
All
right
so
then,
let's
leave
it
at
this
and
then
just
say:
let's
review
this
next
week,
when
eric
did
some
digging
cool,
I
think
you
saw
that
I
added
another
set
of
meetings.
I
hope
nobody
is
offended
by
that,
but,
like
it
seems
like
no
matter
what
we
do,
we
just
hover
at
30.
So
at
some
point
we
want
to
get
the
numbers
down.
It
seems
like
we
need
more
meetings
to
do
that.