Adam Rocska
a3eaa2b8c9
MaxMind Iterator is done.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-05 13:33:03 +02:00
Adam Rocska
f97ca19be5
Iterator in progress. The concept is good enough, just has to be polished.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-05 00:31:52 +02:00
Adam Rocska
017626c3a7
Added nextValue skeleton.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-04 21:08:27 +02:00
Adam Rocska
3f4914190d
A strategy emerged on how to process MaxMindDB data. May not be the best, but it could work.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-04 21:05:55 +02:00
Adam Rocska
6449c653b2
It works. The motto should still remain "RTFM". Signed integers arrive as two's complement instead of signed magnitude (duh).
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-04 15:24:44 +02:00
Adam Rocska
a9dd03de70
Simplified the inlined type cast state. Now it's time to try the integer sign part.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-04 10:52:44 +02:00
Adam Rocska
bee57f211a
Last try before dumping & preconditioning: Moved the typed value contruction into the padding & truncating functions. Here the integer signed cases could be handled properly.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-04 10:44:41 +02:00
Adam Rocska
438c0eca44
Doing a commit, to save the state. But will remove truncation logic at all, and just simply set a precondition. MaxMind's DB format could possible have an "overflow case" happen, but it just won't be supported.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-04 10:35:42 +02:00
Adam Rocska
9d34199730
I'll figure out int32 later.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-03 18:23:09 +02:00
Adam Rocska
9adc855359
Work in progress with the decoder. I want to avoid creating a copy in memory just because maxmind's binary data format sucks jack's shit...
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-03 17:41:57 +02:00
Adam Rocska
4ab4518902
Found some dead code.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-03 15:11:02 +02:00
Adam Rocska
1c8ead14ce
Can decode UInt16
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-03 14:15:15 +02:00
Adam Rocska
5be584cfbc
Reader will definitely face these errors.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-02 10:38:24 +02:00
Adam Rocska
24b54ec8cb
Minor variable renaming & formatting.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-02 10:36:58 +02:00
Adam Rocska
bac7cedd36
Renamed the file from SafeIndexOffset to LimitedIndex & its test. I think it's more expressive.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-02 10:32:59 +02:00
Adam Rocska
92806b035d
I really needed these limitedIndex accessors. I don't know if it's an anti-pattern with Swift or not, but I couldn't find another way around.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-02 10:30:17 +02:00
Adam Rocska
94465bb5f9
Added a field to ControlByte which expresses the definition's size.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 17:49:58 +02:00
Adam Rocska
ce17c62f90
Keep the code in the 80 char range.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 14:51:38 +02:00
Adam Rocska
322234151a
Made the code leaner, and removed a few unnecessary self references.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 14:51:09 +02:00
Adam Rocska
379b3d576c
Simplification step 1. One last piece of gunk to clear out.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 14:46:40 +02:00
Adam Rocska
09469628e3
The quick and dirty implementation for lastIndexOf. I'll make it a bit nicer (definitely not faster), and move on.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 14:37:30 +02:00
Adam Rocska
b581f12b4f
Just to be absolutely in sync with GitHub. This is just a sketch.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 13:44:26 +02:00
Adam Rocska
d37ac6856c
Accepted the compiler warning's suggestion. Dunno what it helps, but sure.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 13:37:50 +02:00
Adam Rocska
1f80a1ac6e
Syncing github repo with local experiments :
...
- Reader now has the data separator defined as is.
- removed dead dummy playground code from MetadataStructTest.swift
- started to work out a last index of concept (naïve one of-course)
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 13:35:24 +02:00
Adam Rocska
6d98c2d5ff
Added docs' to the control byte.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 13:12:01 +02:00
Adam Rocska
cc4305f2d2
Can't get tests any better than they are for now.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 13:05:09 +02:00
Adam Rocska
3901f2dc1a
Tests refactored.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 12:56:15 +02:00
Adam Rocska
5f7d42e458
Moved the typealiases outside of the class context. I have an idea to make compilation faster.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 12:12:06 +02:00
Adam Rocska
bda2c458b2
Payload size definition tests given. Ugly as hell. Must refactor.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-05-01 12:09:10 +02:00
Adam Rocska
7fff4d7a13
Removed unnecessary comment.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 23:38:35 +02:00
Adam Rocska
7bde17165c
Source is good. Now let's make the tests faster and better.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 22:33:32 +02:00
Adam Rocska
927efa97f7
Half way done with the generalized solution. Tests are green. And I am proud.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 19:45:21 +02:00
Adam Rocska
c349a08525
Simplified sliceFrom value definition
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 18:47:00 +02:00
Adam Rocska
8c21e60f20
Added the test case for the range between 30 and 65.821 but now it's time to refactor.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 18:44:28 +02:00
Adam Rocska
cbe43c1bc6
ControlByte payloadSize determined for values between 29 and 284. On to the next challenge.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 18:11:56 +02:00
Adam Rocska
934dadc269
ControlByte payloadSize determined for values smaller than 29. On to the next challenge.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 16:59:44 +02:00
Adam Rocska
7bc612efee
ControlByte constructor got changed, because the byte sequence is at least 1 byte, at most 5 bytes long.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 14:43:44 +02:00
Adam Rocska
b020fb2944
Finally got a concept on how to program this in a non-convoluted way.
...
- Extended UInt8 with a nice and juicy bitmask helper function
- Foundation for a ControlByte type
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-30 13:27:23 +02:00
Adam Rocska
5ee582ca93
Had the usual unnecessary header comment from CLion.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 19:37:33 +02:00
Adam Rocska
90a7e857ec
We for sure will need an enum for MaxMind DB data types.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 19:36:10 +02:00
Adam Rocska
311cdc3342
Figured out a rather unorthodox, and unsafe way of transforming `Data` to certain Swift types. Will come in handy to represent the MaxMindDB somehow.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 18:01:16 +02:00
Adam Rocska
067ee0be4c
Bada test class naming fixed.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 17:07:57 +02:00
Adam Rocska
bbda680aff
Fixed the bad test naming.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 16:53:03 +02:00
Adam Rocska
c1c9c55d4f
New test data just found a bug. Fixed it.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 16:51:36 +02:00
Adam Rocska
4a854026ec
Removed useless dead code remaining from previous states.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 16:44:57 +02:00
Adam Rocska
fe668afb9e
Better assertions.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 16:44:20 +02:00
Adam Rocska
e06afd3d7a
Making the tests & the API nicer.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 16:41:19 +02:00
Adam Rocska
028b7ae23d
Removed stray dead code.
...
Signed-off-by: Adam Rocska <adam.rocska@adams.solutions>
2020-04-29 16:13:48 +02:00
Adam Rocska
58cf90498d
uncommented rest of the tests.
2020-04-29 16:04:30 +02:00
Adam Rocska
a98db16edb
Bugfixing in the search algorithm.
2020-04-29 15:53:22 +02:00