<feed xmlns='http://www.w3.org/2005/Atom'>
<title>evtclib/src, branch v0.5.0</title>
<subtitle>arcdps EVTC reading/parsing library for Rust</subtitle>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/'/>
<entry>
<title>add Encounter::from_header_id</title>
<updated>2020-10-04T10:01:06+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-04T10:01:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=f480faeefbab83a4396a172a15fce7d264216ef2'/>
<id>f480faeefbab83a4396a172a15fce7d264216ef2</id>
<content type='text'>
It makes sense to expose this logic as a function, as other programs
like raidgrep might want to use the same logic when dealing with partial
evtc files.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It makes sense to expose this logic as a function, as other programs
like raidgrep might want to use the same logic when dealing with partial
evtc files.
</pre>
</div>
</content>
</entry>
<entry>
<title>implement sequence deserialization for Agent</title>
<updated>2020-10-01T15:27:21+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-01T15:27:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=b6676565c39bb6a2fe8f5f01218fe654ec4d2cb8'/>
<id>b6676565c39bb6a2fe8f5f01218fe654ec4d2cb8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>remove another redundant static qualifier</title>
<updated>2020-10-01T15:14:24+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-01T15:14:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=de06c59e691228132f8f79cf18c39f8b433a9239'/>
<id>de06c59e691228132f8f79cf18c39f8b433a9239</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>remove redundant static qualifier</title>
<updated>2020-10-01T15:09:58+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-01T15:09:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=ef034a451a7245b913076f60499629bdddaeef69'/>
<id>ef034a451a7245b913076f60499629bdddaeef69</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix documentation links</title>
<updated>2020-10-01T15:09:32+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-01T15:09:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=94f353b4ad893f5c378dea54e3d4301d884939e9'/>
<id>94f353b4ad893f5c378dea54e3d4301d884939e9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add Agent serialization tests</title>
<updated>2020-10-01T15:04:55+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-01T15:04:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=60f8e6a1e547f7059a69cb71714f34aed5797dd5'/>
<id>60f8e6a1e547f7059a69cb71714f34aed5797dd5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>move Agent definition to a separate file</title>
<updated>2020-10-01T14:44:59+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-01T14:44:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=62249e950c0c5dee0b09b962842543fd60c9ccb4'/>
<id>62249e950c0c5dee0b09b962842543fd60c9ccb4</id>
<content type='text'>
Just like with Event, we now have Agent defined in its own submodule.
The amount of code that it entailed was a lot, so it made sense to split
it off, especially with the deserialization being another big chunk of
Agent related code in lib.rs

The main issue was that the processing submodule accessed private fields
of the Agent struct, which is now no longer possible (since processing
is no longer a submodule of the module in which Agent is defined).
Therefore, some simple crate-public setters for those fields have been
added. Those setters are not public because we do not want outside
crates to mess with the innards of Agent (yet).

Although with (de)serialization being a thing, we need to ensure that we
can handle nonsensical values anyway, since we can no longer guarantee
that we have full control over all of the values, even without setters.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Just like with Event, we now have Agent defined in its own submodule.
The amount of code that it entailed was a lot, so it made sense to split
it off, especially with the deserialization being another big chunk of
Agent related code in lib.rs

The main issue was that the processing submodule accessed private fields
of the Agent struct, which is now no longer possible (since processing
is no longer a submodule of the module in which Agent is defined).
Therefore, some simple crate-public setters for those fields have been
added. Those setters are not public because we do not want outside
crates to mess with the innards of Agent (yet).

Although with (de)serialization being a thing, we need to ensure that we
can handle nonsensical values anyway, since we can no longer guarantee
that we have full control over all of the values, even without setters.
</pre>
</div>
</content>
</entry>
<entry>
<title>manually implement Deserialize for Agent</title>
<updated>2020-10-01T14:27:48+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-10-01T14:27:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=fa3f8e5ce231a5844e59f0d5e1081b5c6f8274c8'/>
<id>fa3f8e5ce231a5844e59f0d5e1081b5c6f8274c8</id>
<content type='text'>
The rationale is included in the comment below. The gist is that we want
to avoid deserializing Agent&lt;Player&gt; (and others) directly, as that
would circumvent the checks.

As a small bonus, we now skip the phantom_data field in serialization,
as that's just an implementation detail that other consumers shouldn't
worry about.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The rationale is included in the comment below. The gist is that we want
to avoid deserializing Agent&lt;Player&gt; (and others) directly, as that
would circumvent the checks.

As a small bonus, we now skip the phantom_data field in serialization,
as that's just an implementation detail that other consumers shouldn't
worry about.
</pre>
</div>
</content>
</entry>
<entry>
<title>return Outcome::Success if a raid was rewarded</title>
<updated>2020-09-29T15:25:26+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-09-29T15:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=65bd385540db567751405df000f6b063226d8b8a'/>
<id>65bd385540db567751405df000f6b063226d8b8a</id>
<content type='text'>
If the reward has been given out, we can be 99.9% sure that the fight
succeeded, in which case we don't need to do any other convuluted
checking. This has the benefit of catching some false-negatives (edge
cases in success detection), at the cost of making the detection a bit
... weirder, in the sense that a log's success might now depend on
whether it was the first kill in the week or not.

However, given that our sucess detection works pretty well overall, I'd
say it's worth to catch a few more false-negatives and try to classify
as many logs correctly as possible. At least, this does not introduce
any false-positives.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the reward has been given out, we can be 99.9% sure that the fight
succeeded, in which case we don't need to do any other convuluted
checking. This has the benefit of catching some false-negatives (edge
cases in success detection), at the cost of making the detection a bit
... weirder, in the sense that a log's success might now depend on
whether it was the first kill in the week or not.

However, given that our sucess detection works pretty well overall, I'd
say it's worth to catch a few more false-negatives and try to classify
as many logs correctly as possible. At least, this does not introduce
any false-positives.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix formatting</title>
<updated>2020-09-28T12:15:50+00:00</updated>
<author>
<name>Daniel Schadt</name>
<email>kingdread@gmx.de</email>
</author>
<published>2020-09-28T12:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/evtclib/commit/?id=ed23bdb5f2d4790ab91628a690483b15089c2a55'/>
<id>ed23bdb5f2d4790ab91628a690483b15089c2a55</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
