Skip to content

feat: added borsh serialize - #486

Merged
alejandro-vaz merged 5 commits into
servo:v2from
alejandro-vaz:borshv2
Aug 30, 2026
Merged

feat: added borsh serialize#486
alejandro-vaz merged 5 commits into
servo:v2from
alejandro-vaz:borshv2

Conversation

@alejandro-vaz

Copy link
Copy Markdown
Collaborator

closes #484, which is a sub-issue of #291

it implements the trait borsh::BorshSerialize for SmallVec under the feature gate borsh

borsh is a fast binary serializing framework

this PR implements the trait on a separate borsh.rs file that will include in the future the BorshDeserialize trait as well

implementation of BorshDeserialize is blocked by #451

@alejandro-vaz
alejandro-vaz requested a review from jdm August 29, 2026 13:11
@alejandro-vaz alejandro-vaz self-assigned this Aug 29, 2026
Comment thread Cargo.toml
internals = []

[dependencies]
borsh = { version = "1.8", optional = true, default-features = false }

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need a new cargo feature as well?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

optional dependencies automatically create a feature with the same name as the dependency

Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
@alejandro-vaz
alejandro-vaz added this pull request to the merge queue Aug 30, 2026
Merged via the queue into servo:v2 with commit 5d18736 Aug 30, 2026
6 checks passed
alejandro-vaz added a commit to alejandro-vaz/rust-smallvec that referenced this pull request Aug 30, 2026
* feat: added borsh serialize

* fix: formatting

* fix: style formatting

---------

Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
alejandro-vaz added a commit to alejandro-vaz/rust-smallvec that referenced this pull request Aug 30, 2026
* fix: cargo warnings

* Turn all tests into integration tests (servo#495)

* Implement arbitrary::Arbitrary for SmallVec (servo#496)

Ports the implementation from the v1 branch to the v2 `SmallVec<T, const N>`
API, gated behind a new optional `arbitrary` feature. Delegates to
`Unstructured::arbitrary_iter` / `arbitrary_take_rest_iter` and collects via
the existing `FromIterator` impl. Adds a feature-gated test.

Closes servo#494

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>

* docs: told agents to link to servo contributing guidelines (servo#504)

* fix: added since and note for deprecations (servo#488)

* style: updated `rustfmt.toml` guidelines (servo#490)

* fix: refined style

* refactor: new style

* fix: style

* revert: fn single line

* Turn all tests into integration tests (servo#495)

* Implement arbitrary::Arbitrary for SmallVec (servo#496)

Ports the implementation from the v1 branch to the v2 `SmallVec<T, const N>`
API, gated behind a new optional `arbitrary` feature. Delegates to
`Unstructured::arbitrary_iter` / `arbitrary_take_rest_iter` and collects via
the existing `FromIterator` impl. Adds a feature-gated test.

Closes servo#494

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>

* docs: told agents to link to servo contributing guidelines (servo#504)

* fix: added since and note for deprecations (servo#488)

* refactor: new style

* revert: fn single line

* fix: import errors solved

* fix: formatting

* fix: style again

---------

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
Co-authored-by: Tobias Decking <Tobias.Decking@gmail.com>
Co-authored-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>

* feat: added borsh serialize (servo#486)

* feat: added borsh serialize

* fix: formatting

* fix: style formatting

---------

Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>

* feat: implement `Format` for `SmallVec` (servo#472)

* feat: added defmt for smallvec

* fix: ran formatter

* refactor: removed API boundary

* fix: ran formatter

* fix: renamed imports to avoid namespace conflicts

* refactor: simplified format for smallvec

* fix: style formatting

* fix: imports

---------

Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>

* fix: cargo warnings

---------

Signed-off-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>
Signed-off-by: Alejandro Vaz <alejandro.vaz.myt@gmail.com>
Co-authored-by: Tobias Decking <Tobias.Decking@gmail.com>
Co-authored-by: Jorge Polanco <55784702+Jorge-Polanco-Roque@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

implement BorshSerialize for SmallVec

2 participants