Use Record's public API in a bunch of places#10927
Merged
sholderbach merged 16 commits intonushell:mainfrom Nov 8, 2023
Merged
Use Record's public API in a bunch of places#10927sholderbach merged 16 commits intonushell:mainfrom
Record's public API in a bunch of places#10927sholderbach merged 16 commits intonushell:mainfrom
Conversation
This could be a use case for a specific `.into_columns` consuming iterator, but else rarely used.
Could be another usecase for an explicit `IntoColumns` consuming iterator. (see `columns` implementation). We should also check if we clone/create unnecessary values here, when we only care about the columns.
Drastically simplifies the code TODO: rewrite the helper to mutate the data directly
Manually running `.index_of` and then using `.get_index` feels a bit pedestrian but should work.
Touches: - `flatten` - `sort` - `uniq` - `to md` - `to nuon` - `str trim` Nothing extraordinary so squashed commit.
sholderbach
added a commit
that referenced
this pull request
Nov 8, 2023
# Description Rewrite `find` internals with the same principles as in #10927. Here we can remove an unnecessary lookup accross all columns when not narrowing find to particular columns - Change `find` internal fns to use iterators - Remove unnecessary quadratic lookup in `find` - Refactor `find` record highlight logic # User-Facing Changes Should provide a small speedup when not providing `find --columns` # Tests + Formatting (-)
hardfau1t
pushed a commit
to hardfau1t/nushell
that referenced
this pull request
Dec 14, 2023
# Description Rewrite `find` internals with the same principles as in nushell#10927. Here we can remove an unnecessary lookup accross all columns when not narrowing find to particular columns - Change `find` internal fns to use iterators - Remove unnecessary quadratic lookup in `find` - Refactor `find` record highlight logic # User-Facing Changes Should provide a small speedup when not providing `find --columns` # Tests + Formatting (-)
hardfau1t
pushed a commit
to hardfau1t/nushell
that referenced
this pull request
Dec 14, 2023
# Description Since nushell#10841 the goal is to remove the implementation details of `Record` outside of core operations. To this end use Record iterators and map-like accessors in a bunch of places. In this PR I try to collect the boring cases where I don't expect any dramatic performance impacts or don't have doubts about the correctness afterwards - Use checked record construction in `nu_plugin_example` - Use `Record::into_iter` in `columns` - Use `Record` iterators in `headers` cmd - Use explicit record iterators in `split-by` - Use `Record::into_iter` in variable completions - Use `Record::values` iterator in `into sqlite` - Use `Record::iter_mut` for-loop in `default` - Change `nu_engine::nonexistent_column` to use iterator - Use `Record::columns` iter in `nu-cmd-base` - Use `Record::get_index` in `nu-command/network/http` - Use `Record.insert()` in `merge` - Refactor `move` to use encapsulated record API - Use `Record.insert()` in `explore` - Use proper `Record` API in `explore` - Remove defensiveness around record in `explore` - Use encapsulated record API in more `nu-command`s # User-Facing Changes None intentional # Tests + Formatting (-)
dmatos2012
pushed a commit
to dmatos2012/nushell
that referenced
this pull request
Feb 20, 2024
# Description Rewrite `find` internals with the same principles as in nushell#10927. Here we can remove an unnecessary lookup accross all columns when not narrowing find to particular columns - Change `find` internal fns to use iterators - Remove unnecessary quadratic lookup in `find` - Refactor `find` record highlight logic # User-Facing Changes Should provide a small speedup when not providing `find --columns` # Tests + Formatting (-)
dmatos2012
pushed a commit
to dmatos2012/nushell
that referenced
this pull request
Feb 20, 2024
# Description Since nushell#10841 the goal is to remove the implementation details of `Record` outside of core operations. To this end use Record iterators and map-like accessors in a bunch of places. In this PR I try to collect the boring cases where I don't expect any dramatic performance impacts or don't have doubts about the correctness afterwards - Use checked record construction in `nu_plugin_example` - Use `Record::into_iter` in `columns` - Use `Record` iterators in `headers` cmd - Use explicit record iterators in `split-by` - Use `Record::into_iter` in variable completions - Use `Record::values` iterator in `into sqlite` - Use `Record::iter_mut` for-loop in `default` - Change `nu_engine::nonexistent_column` to use iterator - Use `Record::columns` iter in `nu-cmd-base` - Use `Record::get_index` in `nu-command/network/http` - Use `Record.insert()` in `merge` - Refactor `move` to use encapsulated record API - Use `Record.insert()` in `explore` - Use proper `Record` API in `explore` - Remove defensiveness around record in `explore` - Use encapsulated record API in more `nu-command`s # User-Facing Changes None intentional # Tests + Formatting (-)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Since #10841 the goal is to remove the implementation details of
Recordoutside of core operations.To this end use Record iterators and map-like accessors in a bunch of places. In this PR I try to collect the boring cases where I don't expect any dramatic performance impacts or don't have doubts about the correctness afterwards
nu_plugin_exampleRecord::into_iterincolumnsRecorditerators inheaderscmdsplit-byRecord::into_iterin variable completionsRecord::valuesiterator ininto sqliteRecord::iter_mutfor-loop indefaultnu_engine::nonexistent_columnto use iteratorRecord::columnsiter innu-cmd-baseRecord::get_indexinnu-command/network/httpRecord.insert()inmergemoveto use encapsulated record APIRecord.insert()inexploreRecordAPI inexploreexplorenu-commandsUser-Facing Changes
None intentional
Tests + Formatting
(-)