Skip to content

Implement text KeyValues 3 - #61

Closed
xPaw wants to merge 54 commits into
masterfrom
kv3
Closed

Implement text KeyValues 3#61
xPaw wants to merge 54 commits into
masterfrom
kv3

Conversation

@xPaw

@xPawxPaw commented Oct 1, 2022

Copy link
Copy Markdown
Member
  • Flagged values
    • Add Flag to KVValue for flagged strings (text) or flagged anything (binary)
    • Ensure that KV1 serialiser drops the flag when serialising (should happen by default, but check / write unit test)
    • Ensure that flag and value is maintained when deserialising to a strongly-typed object model that has a KVValue field/property.
  • Create KV3 text deserializer
  • Create KV3 text serializer
  • Write tests for converting KV3 to KV1
  • Write tests for converting KV1 to KV3
  • Support null type
  • Support different types of root values (arrays, strings, nulls, etc)
    • This partially works but a few things don't like value flags and arrays.
  • Add support for accessing and setting header encoding/format. We will likely need a breaking change for deserialize method to return some kind of KV file object, rather than KVObject directly. This KVFile object will likely be needed for KV2 implementation too.
  • Better support for arrays
  • Verify whether latest Source2 versions still support multiple flags at once (might have been removed)

@xPaw

xPaw commented Oct 23, 2022

Copy link
Copy Markdown
MemberAuthor

@yaakov-h Can you give this an initial review pass? I especially want to hear about stuff around handling arrays and flags.

@xPawxPaw linked an issue Dec 5, 2022 that may be closed by this pull request
@xPawxPaw mentioned this pull request Dec 5, 2022
@xPawxPaw closed this Mar 26, 2026
@xPaw
xPaw deleted the kv3 branch March 26, 2026 20:20
@xPawxPaw moved this from In Progress to Done in Key Values 3Mar 26, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Implement KeyValues3 (Text)

2 participants

@xPaw@kristiker