)]}'
{"snix/nix-compat/src/derivation/mod.rs":[{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"06da0a94ed8d52a1dbcb486319b2c01e76efcea7","unresolved":true,"context_lines":[{"line_number":126,"context_line":"    /// Parse an Derivation in ATerm serialization, and validate it passes"},{"line_number":127,"context_line":"    /// our set of validations, from a asynchronous buffered reader."},{"line_number":128,"context_line":"    /// This is a streaming variant of [`from_aterm_bytes`]."},{"line_number":129,"context_line":"    pub async fn from_streaming_aterm_bytes\u003cR\u003e("},{"line_number":130,"context_line":"        mut reader: R,"},{"line_number":131,"context_line":"    ) -\u003e Result\u003cDerivation, parser::Error\u003cVec\u003cu8\u003e\u003e\u003e"},{"line_number":132,"context_line":"    where"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"0aaf953e_e1564fa8","line":129,"updated":"2025-03-24 23:07:17.000000000","message":"I\u0027d rather see this be moved into an extension trait, gated by the `async` feature flag than an associated function.","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"151802e8d60e3a74c13901837bdf5776f8f500ee","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    /// Parse an Derivation in ATerm serialization, and validate it passes"},{"line_number":127,"context_line":"    /// our set of validations, from a asynchronous buffered reader."},{"line_number":128,"context_line":"    /// This is a streaming variant of [`from_aterm_bytes`]."},{"line_number":129,"context_line":"    pub async fn from_streaming_aterm_bytes\u003cR\u003e("},{"line_number":130,"context_line":"        mut reader: R,"},{"line_number":131,"context_line":"    ) -\u003e Result\u003cDerivation, parser::Error\u003cVec\u003cu8\u003e\u003e\u003e"},{"line_number":132,"context_line":"    where"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"b8afe6fb_4834ed29","line":129,"in_reply_to":"0aaf953e_e1564fa8","updated":"2025-03-25 20:59:08.000000000","message":"Done","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"06da0a94ed8d52a1dbcb486319b2c01e76efcea7","unresolved":true,"context_lines":[{"line_number":130,"context_line":"        mut reader: R,"},{"line_number":131,"context_line":"    ) -\u003e Result\u003cDerivation, parser::Error\u003cVec\u003cu8\u003e\u003e\u003e"},{"line_number":132,"context_line":"    where"},{"line_number":133,"context_line":"        R: AsyncBufRead + Unpin + Send,"},{"line_number":134,"context_line":"    {"},{"line_number":135,"context_line":"        let mut buffer \u003d Vec::new();"},{"line_number":136,"context_line":"        loop {"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"bad95ea2_f48b4dd0","line":133,"updated":"2025-03-24 23:07:17.000000000","message":"You can specify `AsyncBufRead` fully-qualified and do the import of `AsyncBufReadExt` inside the function.","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"151802e8d60e3a74c13901837bdf5776f8f500ee","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        mut reader: R,"},{"line_number":131,"context_line":"    ) -\u003e Result\u003cDerivation, parser::Error\u003cVec\u003cu8\u003e\u003e\u003e"},{"line_number":132,"context_line":"    where"},{"line_number":133,"context_line":"        R: AsyncBufRead + Unpin + Send,"},{"line_number":134,"context_line":"    {"},{"line_number":135,"context_line":"        let mut buffer \u003d Vec::new();"},{"line_number":136,"context_line":"        loop {"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"49829999_aa4b2866","line":133,"in_reply_to":"bad95ea2_f48b4dd0","updated":"2025-03-25 20:59:08.000000000","message":"Done","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"06da0a94ed8d52a1dbcb486319b2c01e76efcea7","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            // We reached EOF, we can stop and return incompleteness."},{"line_number":141,"context_line":"            if length \u003d\u003d 0 {"},{"line_number":142,"context_line":"                break;"},{"line_number":143,"context_line":"            }"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"            buffer.extend_from_slice(rest);"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"83cf7fd8_7edc1f06","line":142,"updated":"2025-03-24 23:07:17.000000000","message":"```suggestion\n                return Err(ParserError::Incomplete)\n```","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"151802e8d60e3a74c13901837bdf5776f8f500ee","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            // We reached EOF, we can stop and return incompleteness."},{"line_number":141,"context_line":"            if length \u003d\u003d 0 {"},{"line_number":142,"context_line":"                break;"},{"line_number":143,"context_line":"            }"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"            buffer.extend_from_slice(rest);"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"77dce005_6f166b6b","line":142,"in_reply_to":"83cf7fd8_7edc1f06","updated":"2025-03-25 20:59:08.000000000","message":"Done","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"06da0a94ed8d52a1dbcb486319b2c01e76efcea7","unresolved":true,"context_lines":[{"line_number":150,"context_line":"                    reader.consume(length);"},{"line_number":151,"context_line":"                    continue;"},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"                Ok(parser::IncrementalDerivation::FullDerivationWithLeftover("},{"line_number":154,"context_line":"                    derivation,"},{"line_number":155,"context_line":"                    leftover,"},{"line_number":156,"context_line":"                )) \u003d\u003e {"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"917fa3ef_1deafef5","line":153,"updated":"2025-03-24 23:07:17.000000000","message":"This gets /simpler/ if we don\u0027t have two branches for there being unparsed rest or not.","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"0398972ab58fac64b4fd7a80768b0353674d6038","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                    reader.consume(length);"},{"line_number":151,"context_line":"                    continue;"},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"                Ok(parser::IncrementalDerivation::FullDerivationWithLeftover("},{"line_number":154,"context_line":"                    derivation,"},{"line_number":155,"context_line":"                    leftover,"},{"line_number":156,"context_line":"                )) \u003d\u003e {"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"699b92e9_4d4f8d45","line":153,"in_reply_to":"917fa3ef_1deafef5","updated":"2025-03-25 20:59:15.000000000","message":"Done","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"06da0a94ed8d52a1dbcb486319b2c01e76efcea7","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            }"},{"line_number":180,"context_line":"        }"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        Err(ParserError::Incomplete)"},{"line_number":183,"context_line":"    }"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    /// Returns the drv path of a [Derivation] struct."}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"79393168_b5ce2504","line":182,"updated":"2025-03-24 23:07:17.000000000","message":"Can be dropped, we only return once","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"151802e8d60e3a74c13901837bdf5776f8f500ee","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            }"},{"line_number":180,"context_line":"        }"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        Err(ParserError::Incomplete)"},{"line_number":183,"context_line":"    }"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    /// Returns the drv path of a [Derivation] struct."}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"bec207b2_d091bc6d","line":182,"in_reply_to":"79393168_b5ce2504","updated":"2025-03-25 20:59:08.000000000","message":"Done","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"bc9b9b344d929623e6b37c1ecaa6fbbaedecb42d","unresolved":true,"context_lines":[{"line_number":287,"context_line":"trait DerivationAsyncExt {"},{"line_number":288,"context_line":"    /// Parse an Derivation in ATerm serialization, and validate it passes"},{"line_number":289,"context_line":"    /// our set of validations, from a asynchronous buffered reader."},{"line_number":290,"context_line":"    /// This is a streaming variant of [`from_aterm_bytes`]."},{"line_number":291,"context_line":"    async fn from_streaming_aterm_bytes\u003cR\u003e(reader: R) -\u003e Result\u003cDerivation, parser::Error\u003cVec\u003cu8\u003e\u003e\u003e"},{"line_number":292,"context_line":"    where"},{"line_number":293,"context_line":"        R: tokio::io::AsyncBufRead + Unpin + Send;"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"676410e8_d03b9ab8","line":290,"updated":"2025-03-25 22:38:20.000000000","message":"```suggestion\n    /// This is a streaming variant of [Derivation::from_aterm_bytes].\n```","commit_id":"812c49822a34f055ed24a1347df79d01dab4234a"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"72d89303d9b08e28be7dbc81a115fd9bed165424","unresolved":false,"context_lines":[{"line_number":287,"context_line":"trait DerivationAsyncExt {"},{"line_number":288,"context_line":"    /// Parse an Derivation in ATerm serialization, and validate it passes"},{"line_number":289,"context_line":"    /// our set of validations, from a asynchronous buffered reader."},{"line_number":290,"context_line":"    /// This is a streaming variant of [`from_aterm_bytes`]."},{"line_number":291,"context_line":"    async fn from_streaming_aterm_bytes\u003cR\u003e(reader: R) -\u003e Result\u003cDerivation, parser::Error\u003cVec\u003cu8\u003e\u003e\u003e"},{"line_number":292,"context_line":"    where"},{"line_number":293,"context_line":"        R: tokio::io::AsyncBufRead + Unpin + Send;"}],"source_content_type":"text/x-rustsrc","patch_set":4,"id":"c74ac661_5a292ccc","line":290,"in_reply_to":"676410e8_d03b9ab8","updated":"2025-03-27 17:34:40.000000000","message":"Done","commit_id":"812c49822a34f055ed24a1347df79d01dab4234a"}],"snix/nix-compat/src/derivation/parser.rs":[{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"06da0a94ed8d52a1dbcb486319b2c01e76efcea7","unresolved":true,"context_lines":[{"line_number":57,"context_line":"    }"},{"line_number":58,"context_line":"}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"pub(crate) enum IncrementalDerivation\u003c\u0027a\u003e {"},{"line_number":61,"context_line":"    FullDerivationWithLeftover(Derivation, \u0026\u0027a [u8]),"},{"line_number":62,"context_line":"    FullDerivation(Derivation),"},{"line_number":63,"context_line":"    Incomplete,"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"5b2c798e_91f8a48b","line":60,"updated":"2025-03-24 23:07:17.000000000","message":"I\u0027m not very happy with these names. Incremental suggests we can stack things together or some sort.\n\n\nWhat about renaming the function to `parse_streaming` (to keep the same naming convention as `nom` has) and returning a `(Result\u003cDerivation, Error\u003c\u0026[u8]\u003e\u003e, \u0026[u8])`?\n\nThat will remove the need for the enum, and the logic on the callsite doesn\u0027t seem to get more complicated by that, but simpler :-)","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"151802e8d60e3a74c13901837bdf5776f8f500ee","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    }"},{"line_number":58,"context_line":"}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"pub(crate) enum IncrementalDerivation\u003c\u0027a\u003e {"},{"line_number":61,"context_line":"    FullDerivationWithLeftover(Derivation, \u0026\u0027a [u8]),"},{"line_number":62,"context_line":"    FullDerivation(Derivation),"},{"line_number":63,"context_line":"    Incomplete,"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"82089146_40c07c3e","line":60,"in_reply_to":"5b2c798e_91f8a48b","updated":"2025-03-25 20:59:08.000000000","message":"Done","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"change_message_id":"06da0a94ed8d52a1dbcb486319b2c01e76efcea7","unresolved":true,"context_lines":[{"line_number":62,"context_line":"    FullDerivation(Derivation),"},{"line_number":63,"context_line":"    Incomplete,"},{"line_number":64,"context_line":"}"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"pub(crate) fn parse_incrementally(i: \u0026[u8]) -\u003e Result\u003cIncrementalDerivation, Error\u003c\u0026[u8]\u003e\u003e {"},{"line_number":67,"context_line":"    match consumed(parse_derivation).parse(i) {"},{"line_number":68,"context_line":"        Ok((_, (rest, derivation))) \u003d\u003e {"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"c7105e4f_a2dbb064","line":65,"updated":"2025-03-24 23:07:17.000000000","message":"needs docstring, and can probably be pub (if we change the signature).","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"},{"author":{"_account_id":1000000,"name":"Ryan Lahfa","email":"ryan@lahfa.xyz","username":"raitobezarius"},"change_message_id":"151802e8d60e3a74c13901837bdf5776f8f500ee","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    FullDerivation(Derivation),"},{"line_number":63,"context_line":"    Incomplete,"},{"line_number":64,"context_line":"}"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"pub(crate) fn parse_incrementally(i: \u0026[u8]) -\u003e Result\u003cIncrementalDerivation, Error\u003c\u0026[u8]\u003e\u003e {"},{"line_number":67,"context_line":"    match consumed(parse_derivation).parse(i) {"},{"line_number":68,"context_line":"        Ok((_, (rest, derivation))) \u003d\u003e {"}],"source_content_type":"text/x-rustsrc","patch_set":1,"id":"d365933c_06cbc9f5","line":65,"in_reply_to":"c7105e4f_a2dbb064","updated":"2025-03-25 20:59:08.000000000","message":"Done","commit_id":"cee82a626784823014064ca94d171bb28f00cdbd"}]}
