{"owner":"Cysharp","repo":"ZLinq","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":2152,"categories":["anthropic-skill","claude-rule","copilot-instructions"],"hasMcp":false,"mcpConfig":null,"found":["src/ZLinq.Unity/Packages/packages-lock.json","src/ZLinq.Unity/Packages/manifest.json","CLAUDE.md",".github/copilot-instructions.md"],"skills":{"src/ZLinq.Unity/Packages/packages-lock.json":"{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": {\n      \"version\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.cysharp.zlinq.internal\": {\n      \"version\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.github-glitchenzo.nugetforunity\": {\n      \"version\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n      \"depth\": 0,\n      \"source\": \"git\",\n      \"dependencies\": {},\n      \"hash\": \"fe31ad0904abee296b5ea72c6073157accba59e8\"\n    },\n    \"com.unity.burst\": {\n      \"version\": \"1.8.18\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.mathematics\": \"1.2.1\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.collections\": {\n      \"version\": \"2.5.3\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.burst\": \"1.8.18\",\n        \"com.unity.mathematics\": \"1.3.2\",\n        \"com.unity.test-framework\": \"1.4.5\",\n        \"com.unity.nuget.mono-cecil\": \"1.11.4\",\n        \"com.unity.test-framework.performance\": \"3.0.3\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ext.nunit\": {\n      \"version\": \"2.0.3\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.visualstudio\": {\n      \"version\": \"2.0.22\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.9\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.mathematics\": {\n      \"version\": \"1.3.2\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.nuget.mono-cecil\": {\n      \"version\": \"1.11.4\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework\": {\n      \"version\": \"1.4.5\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"2.0.3\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework.performance\": {\n      \"version\": \"3.0.3\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.31\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.modules.imgui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.jsonserialize\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.ui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.uielements\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    }\n  }\n}\n","src/ZLinq.Unity/Packages/manifest.json":"{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n    \"com.cysharp.zlinq.internal\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n    \"com.github-glitchenzo.nugetforunity\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n    \"com.unity.collections\": \"2.5.3\",\n    \"com.unity.ide.visualstudio\": \"2.0.22\",\n    \"com.unity.modules.uielements\": \"1.0.0\"\n  }\n}\n","CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nZLinq is a zero-allocation LINQ library for .NET that provides high-performance alternatives to System.Linq through struct-based value types. The library offers LINQ to Span, LINQ to SIMD, and LINQ to Tree functionality across all .NET platforms including Unity and Godot.\n\n## Key Architecture\n\n### Core Design\n- **ValueEnumerable<TEnumerator, T>**: Main struct that wraps enumerators to enable method chaining without allocations\n- **IValueEnumerator<T>**: Interface defining `TryGetNext(out T current)` pattern instead of MoveNext/Current\n- **ref struct support**: In .NET 9+, ValueEnumerable is a ref struct enabling Span<T> integration\n- **Optimization methods**: `TryGetNonEnumeratedCount`, `TryGetSpan`, `TryCopyTo` for performance optimizations\n\n### Project Structure\n- `src/ZLinq/`: Core library with all LINQ operators in `Linq/` folder and SIMD implementations in `Simd/`\n- `src/ZLinq.DropInGenerator/`: Source generator for automatic ZLinq method replacement\n- `src/ZLinq.FileSystem/`, `ZLinq.Json/`, `ZLinq.Godot/`: Tree traversal extensions\n- `src/ZLinq.Unity/`: Unity package with GameObject/Transform traversal\n- `src/FileGen/`: Code generation tools for creating operators\n- `sandbox/`: Test applications and benchmarks\n- `tests/`: Comprehensive test suite including System.Linq compatibility tests\n\n## Development Commands\n\n### Building\n```bash\ndotnet build\n```\n\n### Testing\n```bash\n# Run ZLinq-specific tests\ndotnet test tests/ZLinq.Tests/\n\n# Run System.Linq compatibility tests (extensive)\ndotnet test tests/System.Linq.Tests/\n\n# Run all tests\ndotnet test\n```\n\n### Benchmarking\n```bash\ncd sandbox/Benchmark\ndotnet run -c Release\n```\n\n## Testing Guidelines\n\n- Use xUnit v3 with Shouldly for assertions\n- Global usings include `Xunit`, `Shouldly`, `ZLinq`\n- Class field naming: do NOT use `_` prefix\n- Tests target multiple frameworks: net6.0, net8.0, net9.0, net48 (Windows), net10.0 (VS Preview)\n- System.Linq.Tests project validates 99% compatibility with System.Linq using original Microsoft tests\n\n## Code Patterns\n\n### Custom Operators\n- Implement `IValueEnumerator<T>` as struct (ref struct in .NET 9+)\n- Use `TryGetNext(out T current)` instead of MoveNext/Current pattern\n- Always dispose source enumerators in Dispose()\n- Optimization methods can return false if complex to implement\n\n### SIMD Support\n- Available in .NET 8+ when `TryGetSpan` returns true\n- Covers Sum, Average, Min, Max, Contains, SequenceEqual for numeric types\n- Use `ZLinq.Simd` namespace for explicit SIMD operations\n\n### Drop-in Replacement\n- Use `ZLinqDropInAttribute` assembly attribute to auto-replace LINQ methods\n- Configure with `DropInGenerateTypes` flags for target types\n- Support custom types with `ZLinqDropInExtensionAttribute`\n\n## Important Constraints\n\n- ValueEnumerable cannot be converted to IEnumerable<T> in .NET 9+ (ref struct limitation)\n- No yield return support in custom operators - everything must be manually implemented\n- Reference types in enumerator constructors share state across copies - initialize in TryGetNext instead\n- Method chains create different types - cannot reassign to same variable\n\n## Unity Integration\n\n- Install via NuGetForUnity + git URL for Unity package\n- Provides GameObject/Transform tree traversal with Ancestors/Children/Descendants\n- Supports NativeArray, NativeSlice through AsValueEnumerable()\n- Minimum Unity version: 2022.3.12f1 for DropInGenerator support\n\n## Performance Focus\n\nZLinq prioritizes zero-allocation performance with comprehensive SIMD support and optimization hooks. The library proves compatibility by passing 9000+ System.Linq tests while delivering superior performance in most scenarios.",".github/copilot-instructions.md":"* UnitTests should use xUnit + Shoudly.\n    * in that case, it includes `global namespace` so don't add `using Shouldly;`.\n* class field naming, don't use `_` prefix."},"files":{"src/ZLinq.Unity/Packages/packages-lock.json":"{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": {\n      \"version\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.cysharp.zlinq.internal\": {\n      \"version\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.github-glitchenzo.nugetforunity\": {\n      \"version\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n      \"depth\": 0,\n      \"source\": \"git\",\n      \"dependencies\": {},\n      \"hash\": \"fe31ad0904abee296b5ea72c6073157accba59e8\"\n    },\n    \"com.unity.burst\": {\n      \"version\": \"1.8.18\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.mathematics\": \"1.2.1\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.collections\": {\n      \"version\": \"2.5.3\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.burst\": \"1.8.18\",\n        \"com.unity.mathematics\": \"1.3.2\",\n        \"com.unity.test-framework\": \"1.4.5\",\n        \"com.unity.nuget.mono-cecil\": \"1.11.4\",\n        \"com.unity.test-framework.performance\": \"3.0.3\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ext.nunit\": {\n      \"version\": \"2.0.3\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.visualstudio\": {\n      \"version\": \"2.0.22\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.9\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.mathematics\": {\n      \"version\": \"1.3.2\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.nuget.mono-cecil\": {\n      \"version\": \"1.11.4\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework\": {\n      \"version\": \"1.4.5\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"2.0.3\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework.performance\": {\n      \"version\": \"3.0.3\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.31\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.modules.imgui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.jsonserialize\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.ui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.uielements\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    }\n  }\n}\n","src/ZLinq.Unity/Packages/manifest.json":"{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n    \"com.cysharp.zlinq.internal\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n    \"com.github-glitchenzo.nugetforunity\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n    \"com.unity.collections\": \"2.5.3\",\n    \"com.unity.ide.visualstudio\": \"2.0.22\",\n    \"com.unity.modules.uielements\": \"1.0.0\"\n  }\n}\n","CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nZLinq is a zero-allocation LINQ library for .NET that provides high-performance alternatives to System.Linq through struct-based value types. The library offers LINQ to Span, LINQ to SIMD, and LINQ to Tree functionality across all .NET platforms including Unity and Godot.\n\n## Key Architecture\n\n### Core Design\n- **ValueEnumerable<TEnumerator, T>**: Main struct that wraps enumerators to enable method chaining without allocations\n- **IValueEnumerator<T>**: Interface defining `TryGetNext(out T current)` pattern instead of MoveNext/Current\n- **ref struct support**: In .NET 9+, ValueEnumerable is a ref struct enabling Span<T> integration\n- **Optimization methods**: `TryGetNonEnumeratedCount`, `TryGetSpan`, `TryCopyTo` for performance optimizations\n\n### Project Structure\n- `src/ZLinq/`: Core library with all LINQ operators in `Linq/` folder and SIMD implementations in `Simd/`\n- `src/ZLinq.DropInGenerator/`: Source generator for automatic ZLinq method replacement\n- `src/ZLinq.FileSystem/`, `ZLinq.Json/`, `ZLinq.Godot/`: Tree traversal extensions\n- `src/ZLinq.Unity/`: Unity package with GameObject/Transform traversal\n- `src/FileGen/`: Code generation tools for creating operators\n- `sandbox/`: Test applications and benchmarks\n- `tests/`: Comprehensive test suite including System.Linq compatibility tests\n\n## Development Commands\n\n### Building\n```bash\ndotnet build\n```\n\n### Testing\n```bash\n# Run ZLinq-specific tests\ndotnet test tests/ZLinq.Tests/\n\n# Run System.Linq compatibility tests (extensive)\ndotnet test tests/System.Linq.Tests/\n\n# Run all tests\ndotnet test\n```\n\n### Benchmarking\n```bash\ncd sandbox/Benchmark\ndotnet run -c Release\n```\n\n## Testing Guidelines\n\n- Use xUnit v3 with Shouldly for assertions\n- Global usings include `Xunit`, `Shouldly`, `ZLinq`\n- Class field naming: do NOT use `_` prefix\n- Tests target multiple frameworks: net6.0, net8.0, net9.0, net48 (Windows), net10.0 (VS Preview)\n- System.Linq.Tests project validates 99% compatibility with System.Linq using original Microsoft tests\n\n## Code Patterns\n\n### Custom Operators\n- Implement `IValueEnumerator<T>` as struct (ref struct in .NET 9+)\n- Use `TryGetNext(out T current)` instead of MoveNext/Current pattern\n- Always dispose source enumerators in Dispose()\n- Optimization methods can return false if complex to implement\n\n### SIMD Support\n- Available in .NET 8+ when `TryGetSpan` returns true\n- Covers Sum, Average, Min, Max, Contains, SequenceEqual for numeric types\n- Use `ZLinq.Simd` namespace for explicit SIMD operations\n\n### Drop-in Replacement\n- Use `ZLinqDropInAttribute` assembly attribute to auto-replace LINQ methods\n- Configure with `DropInGenerateTypes` flags for target types\n- Support custom types with `ZLinqDropInExtensionAttribute`\n\n## Important Constraints\n\n- ValueEnumerable cannot be converted to IEnumerable<T> in .NET 9+ (ref struct limitation)\n- No yield return support in custom operators - everything must be manually implemented\n- Reference types in enumerator constructors share state across copies - initialize in TryGetNext instead\n- Method chains create different types - cannot reassign to same variable\n\n## Unity Integration\n\n- Install via NuGetForUnity + git URL for Unity package\n- Provides GameObject/Transform tree traversal with Ancestors/Children/Descendants\n- Supports NativeArray, NativeSlice through AsValueEnumerable()\n- Minimum Unity version: 2022.3.12f1 for DropInGenerator support\n\n## Performance Focus\n\nZLinq prioritizes zero-allocation performance with comprehensive SIMD support and optimization hooks. The library proves compatibility by passing 9000+ System.Linq tests while delivering superior performance in most scenarios.",".github/copilot-instructions.md":"* UnitTests should use xUnit + Shoudly.\n    * in that case, it includes `global namespace` so don't add `using Shouldly;`.\n* class field naming, don't use `_` prefix."},"items":[{"name":"manifest.json","path":"src/ZLinq.Unity/Packages/manifest.json","rawUrl":"https://raw.githubusercontent.com/Cysharp/ZLinq/HEAD/src/ZLinq.Unity/Packages/manifest.json","title":"Packages Skill","category":"anthropic-skill","format":"json","content":"{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n    \"com.cysharp.zlinq.internal\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n    \"com.github-glitchenzo.nugetforunity\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n    \"com.unity.collections\": \"2.5.3\",\n    \"com.unity.ide.visualstudio\": \"2.0.22\",\n    \"com.unity.modules.uielements\": \"1.0.0\"\n  }\n}\n","frontmatter":{"dependencies":{"com.cysharp.zlinq.dropingenerator.internal":"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0","com.cysharp.zlinq.internal":"file:../../ZLinq/bin/Debug/netstandard2.1","com.github-glitchenzo.nugetforunity":"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity","com.unity.collections":"2.5.3","com.unity.ide.visualstudio":"2.0.22","com.unity.modules.uielements":"1.0.0"}},"isInternal":false,"tokens":153,"sizeBytes":462},{"name":"packages-lock.json","path":"src/ZLinq.Unity/Packages/packages-lock.json","rawUrl":"https://raw.githubusercontent.com/Cysharp/ZLinq/HEAD/src/ZLinq.Unity/Packages/packages-lock.json","title":"Packages Skill","category":"anthropic-skill","format":"json","content":"{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": {\n      \"version\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.cysharp.zlinq.internal\": {\n      \"version\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.github-glitchenzo.nugetforunity\": {\n      \"version\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n      \"depth\": 0,\n      \"source\": \"git\",\n      \"dependencies\": {},\n      \"hash\": \"fe31ad0904abee296b5ea72c6073157accba59e8\"\n    },\n    \"com.unity.burst\": {\n      \"version\": \"1.8.18\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.mathematics\": \"1.2.1\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.collections\": {\n      \"version\": \"2.5.3\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.burst\": \"1.8.18\",\n        \"com.unity.mathematics\": \"1.3.2\",\n        \"com.unity.test-framework\": \"1.4.5\",\n        \"com.unity.nuget.mono-cecil\": \"1.11.4\",\n        \"com.unity.test-framework.performance\": \"3.0.3\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ext.nunit\": {\n      \"version\": \"2.0.3\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.visualstudio\": {\n      \"version\": \"2.0.22\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.9\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.mathematics\": {\n      \"version\": \"1.3.2\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.nuget.mono-cecil\": {\n      \"version\": \"1.11.4\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework\": {\n      \"version\": \"1.4.5\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"2.0.3\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework.performance\": {\n      \"version\": \"3.0.3\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.31\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.modules.imgui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.jsonserialize\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.ui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.uielements\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    }\n  }\n}\n","frontmatter":{"dependencies":{"com.cysharp.zlinq.dropingenerator.internal":{"version":"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0","depth":0,"source":"local","dependencies":{}},"com.cysharp.zlinq.internal":{"version":"file:../../ZLinq/bin/Debug/netstandard2.1","depth":0,"source":"local","dependencies":{}},"com.github-glitchenzo.nugetforunity":{"version":"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity","depth":0,"source":"git","dependencies":{},"hash":"fe31ad0904abee296b5ea72c6073157accba59e8"},"com.unity.burst":{"version":"1.8.18","depth":1,"source":"registry","dependencies":{"com.unity.mathematics":"1.2.1","com.unity.modules.jsonserialize":"1.0.0"},"url":"https://packages.unity.com"},"com.unity.collections":{"version":"2.5.3","depth":0,"source":"registry","dependencies":{"com.unity.burst":"1.8.18","com.unity.mathematics":"1.3.2","com.unity.test-framework":"1.4.5","com.unity.nuget.mono-cecil":"1.11.4","com.unity.test-framework.performance":"3.0.3"},"url":"https://packages.unity.com"},"com.unity.ext.nunit":{"version":"2.0.3","depth":2,"source":"registry","dependencies":{},"url":"https://packages.unity.com"},"com.unity.ide.visualstudio":{"version":"2.0.22","depth":0,"source":"registry","dependencies":{"com.unity.test-framework":"1.1.9"},"url":"https://packages.unity.com"},"com.unity.mathematics":{"version":"1.3.2","depth":1,"source":"registry","dependencies":{},"url":"https://packages.unity.com"},"com.unity.nuget.mono-cecil":{"version":"1.11.4","depth":1,"source":"registry","dependencies":{},"url":"https://packages.unity.com"},"com.unity.test-framework":{"version":"1.4.5","depth":1,"source":"registry","dependencies":{"com.unity.ext.nunit":"2.0.3","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"},"url":"https://packages.unity.com"},"com.unity.test-framework.performance":{"version":"3.0.3","depth":1,"source":"registry","dependencies":{"com.unity.test-framework":"1.1.31","com.unity.modules.jsonserialize":"1.0.0"},"url":"https://packages.unity.com"},"com.unity.modules.imgui":{"version":"1.0.0","depth":1,"source":"builtin","dependencies":{}},"com.unity.modules.jsonserialize":{"version":"1.0.0","depth":1,"source":"builtin","dependencies":{}},"com.unity.modules.ui":{"version":"1.0.0","depth":1,"source":"builtin","dependencies":{}},"com.unity.modules.uielements":{"version":"1.0.0","depth":0,"source":"builtin","dependencies":{"com.unity.modules.ui":"1.0.0","com.unity.modules.imgui":"1.0.0","com.unity.modules.jsonserialize":"1.0.0"}}}},"isInternal":false,"tokens":1074,"sizeBytes":3449},{"name":"CLAUDE.md","path":"CLAUDE.md","rawUrl":"https://raw.githubusercontent.com/Cysharp/ZLinq/HEAD/CLAUDE.md","title":"Claude Agent Guidelines & System Prompt","category":"claude-rule","format":"markdown","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nZLinq is a zero-allocation LINQ library for .NET that provides high-performance alternatives to System.Linq through struct-based value types. The library offers LINQ to Span, LINQ to SIMD, and LINQ to Tree functionality across all .NET platforms including Unity and Godot.\n\n## Key Architecture\n\n### Core Design\n- **ValueEnumerable<TEnumerator, T>**: Main struct that wraps enumerators to enable method chaining without allocations\n- **IValueEnumerator<T>**: Interface defining `TryGetNext(out T current)` pattern instead of MoveNext/Current\n- **ref struct support**: In .NET 9+, ValueEnumerable is a ref struct enabling Span<T> integration\n- **Optimization methods**: `TryGetNonEnumeratedCount`, `TryGetSpan`, `TryCopyTo` for performance optimizations\n\n### Project Structure\n- `src/ZLinq/`: Core library with all LINQ operators in `Linq/` folder and SIMD implementations in `Simd/`\n- `src/ZLinq.DropInGenerator/`: Source generator for automatic ZLinq method replacement\n- `src/ZLinq.FileSystem/`, `ZLinq.Json/`, `ZLinq.Godot/`: Tree traversal extensions\n- `src/ZLinq.Unity/`: Unity package with GameObject/Transform traversal\n- `src/FileGen/`: Code generation tools for creating operators\n- `sandbox/`: Test applications and benchmarks\n- `tests/`: Comprehensive test suite including System.Linq compatibility tests\n\n## Development Commands\n\n### Building\n```bash\ndotnet build\n```\n\n### Testing\n```bash\n# Run ZLinq-specific tests\ndotnet test tests/ZLinq.Tests/\n\n# Run System.Linq compatibility tests (extensive)\ndotnet test tests/System.Linq.Tests/\n\n# Run all tests\ndotnet test\n```\n\n### Benchmarking\n```bash\ncd sandbox/Benchmark\ndotnet run -c Release\n```\n\n## Testing Guidelines\n\n- Use xUnit v3 with Shouldly for assertions\n- Global usings include `Xunit`, `Shouldly`, `ZLinq`\n- Class field naming: do NOT use `_` prefix\n- Tests target multiple frameworks: net6.0, net8.0, net9.0, net48 (Windows), net10.0 (VS Preview)\n- System.Linq.Tests project validates 99% compatibility with System.Linq using original Microsoft tests\n\n## Code Patterns\n\n### Custom Operators\n- Implement `IValueEnumerator<T>` as struct (ref struct in .NET 9+)\n- Use `TryGetNext(out T current)` instead of MoveNext/Current pattern\n- Always dispose source enumerators in Dispose()\n- Optimization methods can return false if complex to implement\n\n### SIMD Support\n- Available in .NET 8+ when `TryGetSpan` returns true\n- Covers Sum, Average, Min, Max, Contains, SequenceEqual for numeric types\n- Use `ZLinq.Simd` namespace for explicit SIMD operations\n\n### Drop-in Replacement\n- Use `ZLinqDropInAttribute` assembly attribute to auto-replace LINQ methods\n- Configure with `DropInGenerateTypes` flags for target types\n- Support custom types with `ZLinqDropInExtensionAttribute`\n\n## Important Constraints\n\n- ValueEnumerable cannot be converted to IEnumerable<T> in .NET 9+ (ref struct limitation)\n- No yield return support in custom operators - everything must be manually implemented\n- Reference types in enumerator constructors share state across copies - initialize in TryGetNext instead\n- Method chains create different types - cannot reassign to same variable\n\n## Unity Integration\n\n- Install via NuGetForUnity + git URL for Unity package\n- Provides GameObject/Transform tree traversal with Ancestors/Children/Descendants\n- Supports NativeArray, NativeSlice through AsValueEnumerable()\n- Minimum Unity version: 2022.3.12f1 for DropInGenerator support\n\n## Performance Focus\n\nZLinq prioritizes zero-allocation performance with comprehensive SIMD support and optimization hooks. The library proves compatibility by passing 9000+ System.Linq tests while delivering superior performance in most scenarios.","isInternal":false,"tokens":879,"sizeBytes":3803},{"name":"copilot-instructions.md","path":".github/copilot-instructions.md","rawUrl":"https://raw.githubusercontent.com/Cysharp/ZLinq/HEAD/.github/copilot-instructions.md","title":"GitHub Copilot Instructions","category":"copilot-instructions","format":"markdown","content":"* UnitTests should use xUnit + Shoudly.\n    * in that case, it includes `global namespace` so don't add `using Shouldly;`.\n* class field naming, don't use `_` prefix.","isInternal":false,"tokens":46,"sizeBytes":166}],"systemPromptSnippet":"<yakaai_skills repo=\"Cysharp/ZLinq\">\n<!-- File: src/ZLinq.Unity/Packages/manifest.json (Tokens: ~153 | Category: anthropic-skill) -->\n{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n    \"com.cysharp.zlinq.internal\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n    \"com.github-glitchenzo.nugetforunity\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n    \"com.unity.collections\": \"2.5.3\",\n    \"com.unity.ide.visualstudio\": \"2.0.22\",\n    \"com.unity.modules.uielements\": \"1.0.0\"\n  }\n}\n\n<!-- File: src/ZLinq.Unity/Packages/packages-lock.json (Tokens: ~1074 | Category: anthropic-skill) -->\n{\n  \"dependencies\": {\n    \"com.cysharp.zlinq.dropingenerator.internal\": {\n      \"version\": \"file:../../ZLinq.DropInGenerator/bin/Debug/netstandard2.0\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.cysharp.zlinq.internal\": {\n      \"version\": \"file:../../ZLinq/bin/Debug/netstandard2.1\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.github-glitchenzo.nugetforunity\": {\n      \"version\": \"https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity\",\n      \"depth\": 0,\n      \"source\": \"git\",\n      \"dependencies\": {},\n      \"hash\": \"fe31ad0904abee296b5ea72c6073157accba59e8\"\n    },\n    \"com.unity.burst\": {\n      \"version\": \"1.8.18\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.mathematics\": \"1.2.1\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.collections\": {\n      \"version\": \"2.5.3\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.burst\": \"1.8.18\",\n        \"com.unity.mathematics\": \"1.3.2\",\n        \"com.unity.test-framework\": \"1.4.5\",\n        \"com.unity.nuget.mono-cecil\": \"1.11.4\",\n        \"com.unity.test-framework.performance\": \"3.0.3\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ext.nunit\": {\n      \"version\": \"2.0.3\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.visualstudio\": {\n      \"version\": \"2.0.22\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.9\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.mathematics\": {\n      \"version\": \"1.3.2\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.nuget.mono-cecil\": {\n      \"version\": \"1.11.4\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework\": {\n      \"version\": \"1.4.5\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"2.0.3\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.test-framework.performance\": {\n      \"version\": \"3.0.3\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.31\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.modules.imgui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.jsonserialize\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.ui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.uielements\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    }\n  }\n}\n\n<!-- File: CLAUDE.md (Tokens: ~879 | Category: claude-rule) -->\n# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\nZLinq is a zero-allocation LINQ library for .NET that provides high-performance alternatives to System.Linq through struct-based value types. The library offers LINQ to Span, LINQ to SIMD, and LINQ to Tree functionality across all .NET platforms including Unity and Godot.\n\n## Key Architecture\n\n### Core Design\n- **ValueEnumerable<TEnumerator, T>**: Main struct that wraps enumerators to enable method chaining without allocations\n- **IValueEnumerator<T>**: Interface defining `TryGetNext(out T current)` pattern instead of MoveNext/Current\n- **ref struct support**: In .NET 9+, ValueEnumerable is a ref struct enabling Span<T> integration\n- **Optimization methods**: `TryGetNonEnumeratedCount`, `TryGetSpan`, `TryCopyTo` for performance optimizations\n\n### Project Structure\n- `src/ZLinq/`: Core library with all LINQ operators in `Linq/` folder and SIMD implementations in `Simd/`\n- `src/ZLinq.DropInGenerator/`: Source generator for automatic ZLinq method replacement\n- `src/ZLinq.FileSystem/`, `ZLinq.Json/`, `ZLinq.Godot/`: Tree traversal extensions\n- `src/ZLinq.Unity/`: Unity package with GameObject/Transform traversal\n- `src/FileGen/`: Code generation tools for creating operators\n- `sandbox/`: Test applications and benchmarks\n- `tests/`: Comprehensive test suite including System.Linq compatibility tests\n\n## Development Commands\n\n### Building\n```bash\ndotnet build\n```\n\n### Testing\n```bash\n# Run ZLinq-specific tests\ndotnet test tests/ZLinq.Tests/\n\n# Run System.Linq compatibility tests (extensive)\ndotnet test tests/System.Linq.Tests/\n\n# Run all tests\ndotnet test\n```\n\n### Benchmarking\n```bash\ncd sandbox/Benchmark\ndotnet run -c Release\n```\n\n## Testing Guidelines\n\n- Use xUnit v3 with Shouldly for assertions\n- Global usings include `Xunit`, `Shouldly`, `ZLinq`\n- Class field naming: do NOT use `_` prefix\n- Tests target multiple frameworks: net6.0, net8.0, net9.0, net48 (Windows), net10.0 (VS Preview)\n- System.Linq.Tests project validates 99% compatibility with System.Linq using original Microsoft tests\n\n## Code Patterns\n\n### Custom Operators\n- Implement `IValueEnumerator<T>` as struct (ref struct in .NET 9+)\n- Use `TryGetNext(out T current)` instead of MoveNext/Current pattern\n- Always dispose source enumerators in Dispose()\n- Optimization methods can return false if complex to implement\n\n### SIMD Support\n- Available in .NET 8+ when `TryGetSpan` returns true\n- Covers Sum, Average, Min, Max, Contains, SequenceEqual for numeric types\n- Use `ZLinq.Simd` namespace for explicit SIMD operations\n\n### Drop-in Replacement\n- Use `ZLinqDropInAttribute` assembly attribute to auto-replace LINQ methods\n- Configure with `DropInGenerateTypes` flags for target types\n- Support custom types with `ZLinqDropInExtensionAttribute`\n\n## Important Constraints\n\n- ValueEnumerable cannot be converted to IEnumerable<T> in .NET 9+ (ref struct limitation)\n- No yield return support in custom operators - everything must be manually implemented\n- Reference types in enumerator constructors share state across copies - initialize in TryGetNext instead\n- Method chains create different types - cannot reassign to same variable\n\n## Unity Integration\n\n- Install via NuGetForUnity + git URL for Unity package\n- Provides GameObject/Transform tree traversal with Ancestors/Children/Descendants\n- Supports NativeArray, NativeSlice through AsValueEnumerable()\n- Minimum Unity version: 2022.3.12f1 for DropInGenerator support\n\n## Performance Focus\n\nZLinq prioritizes zero-allocation performance with comprehensive SIMD support and optimization hooks. The library proves compatibility by passing 9000+ System.Linq tests while delivering superior performance in most scenarios.\n\n<!-- File: .github/copilot-instructions.md (Tokens: ~46 | Category: copilot-instructions) -->\n* UnitTests should use xUnit + Shoudly.\n    * in that case, it includes `global namespace` so don't add `using Shouldly;`.\n* class field naming, don't use `_` prefix.\n</yakaai_skills>"}