[PR #1607] [MERGED] [FEATURE] Port 708 decoder encoding module to RUST #2319

Open
opened 2026-01-29 17:21:29 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/CCExtractor/ccextractor/pull/1607
Author: @IshanGrover2004
Created: 4/19/2024
Status: Merged
Merged: 5/29/2024
Merged by: @PunitLodha

Base: masterHead: feature/708-decoder-encoding-module


📝 Commits (8)

  • 0e0a001 feat: Add decoder/encoding new module
  • fc39970 feat: Add encoding functions
  • 0d42f3e feat: Add conditional compilation to include Rust functions
  • b89cde1 Merge branch 'CCExtractor:master' into feature/708-decoder-encoding-module
  • 37c74f2 fix: conditional compilation logic
  • b8a7fd6 refactor: Use of match statement instead of if-else
  • 031ac7d fix: Calling C function for rust
  • d79087e feat: Enable derive_default feature

📊 Changes

5 files changed (+60 additions, -1 deletions)

View changed files

📝 src/lib_ccx/ccx_decoders_708_encoding.c (+4 -0)
📝 src/lib_ccx/ccx_decoders_708_encoding.h (+8 -1)
📝 src/rust/build.rs (+2 -0)
src/rust/src/decoder/encoding.rs (+45 -0)
📝 src/rust/src/decoder/mod.rs (+1 -0)

📄 Description

In raising this pull request, I confirm the following (please check boxes):

  • I have read and understood the contributors guide.
  • I have checked that another pull request for this purpose does not exist.
  • I have considered, and confirmed that this submission will be valuable to others.
  • I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
  • I give this submission freely, and claim no ownership to its content.
  • I have mentioned this change in the changelog.

My familiarity with the project is as follows (check one):

  • I have never used CCExtractor.
  • I have used CCExtractor just a couple of times.
  • I absolutely love CCExtractor, but have not contributed previously.
  • I am an active contributor to CCExtractor.

I have migrated the logic and functions from the lib_ccx/ccx_decoder_708_encoding.c file to Rust, located in decoder/encoding.rs. This conversion maintains the same functionality that was originally written in C, now implemented in Rust.

To know more See ccx_decoder_708_encoding.c and compare with File Changed in PR, they are both same

Background & Testing

  • Current codebase scenerio: Only C code of ccx_decoder_708_encoding.c file is available. So while making & running Rust test cases which requires these functions do not have body because cargo test is just seeing the rust code only.
  • After PR changes: Exact same logic of rust code will be there. And I did also added the conditional compilation so that if user build with -without-rust then only C code will work or else Rust code will build. And Yes I have manually tested that when compiling with rust src files, rust code is being used and giving the same result.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/CCExtractor/ccextractor/pull/1607 **Author:** [@IshanGrover2004](https://github.com/IshanGrover2004) **Created:** 4/19/2024 **Status:** ✅ Merged **Merged:** 5/29/2024 **Merged by:** [@PunitLodha](https://github.com/PunitLodha) **Base:** `master` ← **Head:** `feature/708-decoder-encoding-module` --- ### 📝 Commits (8) - [`0e0a001`](https://github.com/CCExtractor/ccextractor/commit/0e0a00108274801a7d895b1511baa448edc5763a) feat: Add `decoder/encoding` new module - [`fc39970`](https://github.com/CCExtractor/ccextractor/commit/fc39970e83254272ab1fe5fd4bb85bbb03680713) feat: Add encoding functions - [`0d42f3e`](https://github.com/CCExtractor/ccextractor/commit/0d42f3e5fea16b104be1a942997816a26769b849) feat: Add conditional compilation to include Rust functions - [`b89cde1`](https://github.com/CCExtractor/ccextractor/commit/b89cde1a550e67f0d346ceca86b12af5af40ea2c) Merge branch 'CCExtractor:master' into feature/708-decoder-encoding-module - [`37c74f2`](https://github.com/CCExtractor/ccextractor/commit/37c74f2deb3ee560982061f8409022c17bacfb44) fix: conditional compilation logic - [`b8a7fd6`](https://github.com/CCExtractor/ccextractor/commit/b8a7fd6385deeda4f012fb200b801925ed742d4e) refactor: Use of match statement instead of if-else - [`031ac7d`](https://github.com/CCExtractor/ccextractor/commit/031ac7d2bbdf81068abc95ac9caeecc58e064134) fix: Calling C function for rust - [`d79087e`](https://github.com/CCExtractor/ccextractor/commit/d79087edf6f936654a298819351a28331574741e) feat: Enable `derive_default` feature ### 📊 Changes **5 files changed** (+60 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `src/lib_ccx/ccx_decoders_708_encoding.c` (+4 -0) 📝 `src/lib_ccx/ccx_decoders_708_encoding.h` (+8 -1) 📝 `src/rust/build.rs` (+2 -0) ➕ `src/rust/src/decoder/encoding.rs` (+45 -0) 📝 `src/rust/src/decoder/mod.rs` (+1 -0) </details> ### 📄 Description **In raising this pull request, I confirm the following (please check boxes):** - [x] I have read and understood the [contributors guide](https://github.com/CCExtractor/ccextractor/blob/master/.github/CONTRIBUTING.md). - [x] I have checked that another pull request for this purpose does not exist. - [x] I have considered, and confirmed that this submission will be valuable to others. - [x] I accept that this submission may not be used, and the pull request closed at the will of the maintainer. - [x] I give this submission freely, and claim no ownership to its content. - [x] **I have mentioned this change in the [changelog](https://github.com/CCExtractor/ccextractor/blob/master/docs/CHANGES.TXT).** **My familiarity with the project is as follows (check one):** - [ ] I have never used CCExtractor. - [ ] I have used CCExtractor just a couple of times. - [ ] I absolutely love CCExtractor, but have not contributed previously. - [x] I am an active contributor to CCExtractor. --- I have migrated the logic and functions from the [lib_ccx/ccx_decoder_708_encoding.c](https://github.com/CCExtractor/ccextractor/blob/master/src/lib_ccx/ccx_decoders_708_encoding.c) file to Rust, located in decoder/encoding.rs. This conversion maintains the same functionality that was originally written in C, now implemented in Rust. To know more See [ccx_decoder_708_encoding.c](https://github.com/CCExtractor/ccextractor/blob/master/src/lib_ccx/ccx_decoders_708_encoding.c) and compare with File Changed in PR, they are both same ### Background & Testing - **Current codebase scenerio:** Only C code of [ccx_decoder_708_encoding.c](https://github.com/CCExtractor/ccextractor/blob/master/src/lib_ccx/ccx_decoders_708_encoding.c) file is available. So while making & running **Rust** test cases which requires these functions do not have body because `cargo test` is just seeing the rust code only. - **After PR changes:** Exact same logic of rust code will be there. And I did also added the conditional compilation so that if user build with `-without-rust` then only C code will work or else Rust code will build. And Yes I have manually tested that when compiling with rust src files, rust code is being used and giving the same result. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 17:21:29 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ccextractor#2319