{"owner":"Cysharp","repo":"ZLinq","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md",".github/copilot-instructions.md"],"skills":{"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":{"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":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","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.","category":"root","tokens":951},{"name":"copilot-instructions.md","path":".github/copilot-instructions.md","title":"copilot-instructions.md","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.","category":".github","tokens":42}]}