)]}'
{"src/Couchbase/Core/Sharding/VBucketKeyMapper.cs":[{"author":{"_account_id":1004555,"name":"Richard Ponton","email":"richard.ponton@couchbase.com","username":"RiPont","avatars":[{"url":"https://www.gravatar.com/avatar/fd2121b54ddf4a68170b9f607ddb68de.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/fd2121b54ddf4a68170b9f607ddb68de.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/fd2121b54ddf4a68170b9f607ddb68de.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/fd2121b54ddf4a68170b9f607ddb68de.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ef83c160a9bf422dd0e11e13b9bfd30512536e41","unresolved":true,"context_lines":[{"line_number":84,"context_line":"        [SkipLocalsInit] // Avoid unnecessary cost of zero-filling keyBytes in Span scenario"},{"line_number":85,"context_line":"        public short GetIndex(string key)"},{"line_number":86,"context_line":"        {"},{"line_number":87,"context_line":"#if NETSTANDARD2_1 || NETCOREAPP2_1 || NETCOREAPP3_0"},{"line_number":88,"context_line":"            Span\u003cbyte\u003e keyBytes \u003d stackalloc byte[OperationHeader.MaxKeyLength];"},{"line_number":89,"context_line":"            var bytes \u003d Encoding.UTF8.GetBytes(key.AsSpan(), keyBytes);"},{"line_number":90,"context_line":"            keyBytes \u003d keyBytes.Slice(0, bytes);"}],"source_content_type":"text/x-csharp","patch_set":1,"id":"9717671c_8309716b","line":87,"updated":"2020-12-14 16:38:26.000000000","message":"These kind of blocks will mess 3.1 and 5.0 and anything in the future.\n\nIs there some other variable we can use?  Can we at least define  our own in the project file so we can update it in one place?","commit_id":"18126818b61471f9f1d02e431a5eb4c16019eda6"},{"author":{"_account_id":1003698,"name":"Brant Burnett","email":"bburnett@centeredgesoftware.com","username":"brantburnett","avatars":[{"url":"https://www.gravatar.com/avatar/12aa2d70cf0b92feeceb6dd7f81dd059.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/12aa2d70cf0b92feeceb6dd7f81dd059.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/12aa2d70cf0b92feeceb6dd7f81dd059.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/12aa2d70cf0b92feeceb6dd7f81dd059.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"750e6aeb72ba58716d8aa97b1b418859b5dcbae0","unresolved":true,"context_lines":[{"line_number":84,"context_line":"        [SkipLocalsInit] // Avoid unnecessary cost of zero-filling keyBytes in Span scenario"},{"line_number":85,"context_line":"        public short GetIndex(string key)"},{"line_number":86,"context_line":"        {"},{"line_number":87,"context_line":"#if NETSTANDARD2_1 || NETCOREAPP2_1 || NETCOREAPP3_0"},{"line_number":88,"context_line":"            Span\u003cbyte\u003e keyBytes \u003d stackalloc byte[OperationHeader.MaxKeyLength];"},{"line_number":89,"context_line":"            var bytes \u003d Encoding.UTF8.GetBytes(key.AsSpan(), keyBytes);"},{"line_number":90,"context_line":"            keyBytes \u003d keyBytes.Slice(0, bytes);"}],"source_content_type":"text/x-csharp","patch_set":1,"id":"a4a8eeea_e5df25fe","line":87,"in_reply_to":"9717671c_8309716b","updated":"2020-12-14 17:51:00.000000000","message":"Excellent point, I\u0027ve flipped the logic to test for the old framework (NETSTANDARD2_0) rather than all the new frameworks, which should futureproof this.","commit_id":"18126818b61471f9f1d02e431a5eb4c16019eda6"}]}
