SnowflakePowered / snowflake

:snowflake: :video_game: Emulator Frontend and SDK
http://snowflakepowe.red
Mozilla Public License 2.0
250 stars 15 forks source link

Filesystem API feature levels and projections #819

Closed chyyran closed 3 years ago

chyyran commented 3 years ago

Directory API changes

Naming changes and bugfixes

Architectural changes

To facilitate code reuse with IDisposableDirectory and further granulate directory capabilities, most basic directory mutability methods have been extracted into IMutableDirectoryBase which serves as a base set of APIs for directories.

Inheritants of IMutableDirectoryBase must further specify the type of child directory openable by implementing IMutableDirectoryBase<TChildDirectory>. They can also specify the capabilities accessible by implementing IMutableDirectoryBase<TChildDirectory, TReopenableAs>.

ReopenAs() is then implemented explicitly in Directory, and extension methods used to disambiguate each reopenable capability.

Projections and DisposableDirectory

818

Other changes

ConfigurationTraversalContext has had path resolution slightly changed. The full directory tree must already be present before resolving path nodes. If the PathType is Either, then it will resolve as follows: if the path exists as a directory, then resolution acts as if the path was a directory. Otherwise, it is treated as a file.

Configuration target members can now be 'exploded' onto the parent node. This allows for individual section items to be written onto the root node. This is preliminary work for #710.

codecov[bot] commented 3 years ago

Codecov Report

Merging #819 (ca53a0f) into master (bd3a37b) will increase coverage by 0.31%. The diff coverage is 73.90%.

@@            Coverage Diff             @@
##           master     #819      +/-   ##
==========================================
+ Coverage   72.33%   72.65%   +0.31%     
==========================================
  Files         474      488      +14     
  Lines       14331    15504    +1173     
  Branches      884      900      +16     
==========================================
+ Hits        10367    11265     +898     
- Misses       3632     3894     +262     
- Partials      332      345      +13     
lgtm-com[bot] commented 3 years ago

This pull request fixes 2 alerts when merging c99d20482461e7b074eafe2d0adfb87f73b94b6d into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request fixes 3 alerts when merging cfdc19ca722432fc7da2f3614d991ac923c82e0d into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request fixes 3 alerts when merging 81f91cd1438f17a5b6f6a22fc508112ea115f0bf into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request fixes 3 alerts when merging 2f1a77d5858d66b76730cb9008b0768783e05ef7 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request fixes 3 alerts when merging 1b9200d78250fa29dee6473da91e95093e4d56e6 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request fixes 3 alerts when merging bec944beff9be7d188cd4a13709570c392b5fa70 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request fixes 3 alerts when merging 01e59ade89427b83a98941149fb7d371f036db00 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request fixes 3 alerts when merging 42abfe435da594ed137e01ee001c1a9e97683a42 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request introduces 1 alert and fixes 3 when merging 75c817aae5aa30d39c2b4a1b98c2093c3d1aea39 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

new alerts:

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request introduces 1 alert and fixes 3 when merging 48172d796346a62ef2a1e1af2092133b7d7d21a8 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

new alerts:

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request introduces 1 alert and fixes 3 when merging 642b4a4aa69338920cb55c409a10f1935b3b0789 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

new alerts:

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request introduces 2 alerts and fixes 3 when merging 54575f8a805847ad07db1d132cc01d7abf631eaa into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

new alerts:

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request introduces 2 alerts and fixes 3 when merging 5938f624d841fb0071cb807cb415d2461e9367cb into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

new alerts:

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request introduces 2 alerts and fixes 3 when merging 2f2df0ac7ff2a3f0dd8c39ebd03664a609591092 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

new alerts:

fixed alerts:

lgtm-com[bot] commented 3 years ago

This pull request introduces 1 alert and fixes 3 when merging 03ce7e1296aa5cbf7dbcea9aa281fde60533a615 into 81a1c792926db57b8976d284068b5103279b0fc7 - view on LGTM.com

new alerts:

fixed alerts: