Compare commits

..

35 Commits

Author SHA1 Message Date
Benedikt Peetz 50c9d45cb7
chore(version): v0.2.1 2024-05-20 15:39:05 +02:00
Benedikt Peetz 5253e59be1
fix(src/types/traits/convert_trait): Remove unneeded imports 2024-05-20 15:38:14 +02:00
Benedikt Peetz afd8169e67
chore(version): v0.2.0 2024-05-20 15:37:01 +02:00
Benedikt Peetz 243a89b8fa
build(NEWS.md): Restore separator
`cog` needs this to know where the changelog starts.
2024-05-20 15:36:16 +02:00
Benedikt Peetz 477b9e149b
build(flake): Ignore correct changelog file 2024-05-20 15:35:29 +02:00
Benedikt Peetz d1f31c2761
chore(c_test): Remove the POC
The feature is implemented, thus it has served it's purpose.
2024-05-20 15:33:53 +02:00
Benedikt Peetz 1677f5c56c
chore(treewide): Add missing license headers 2024-05-20 15:33:53 +02:00
Benedikt Peetz 1f0b9c6f25
fix(example/main): Update to use the new result type 2024-05-20 15:33:52 +02:00
Benedikt Peetz 9000c1de02
feat(src): Add real and working support for results
Every `Result` is now -- on demand -- instantiated (i.e. the generic types
are replaced with the concretely specified ones). And can thus simply be
exported to c.
2024-05-20 15:33:51 +02:00
Benedikt Peetz ee8e860789
build(update.sh): Don't always perform the expensive `upgrade` 2024-05-20 15:33:50 +02:00
Benedikt Peetz c6dc9db2e8
docs(grammar.pdf): Regenerate with new landscape ebnf2pdf script 2024-05-20 15:33:50 +02:00
Benedikt Peetz 650d577b3b
fix(src/parsing): Remove the extra `error` attribute keyword
This keyword marked an enum as being an error, which is exactly what
`derive(Error)` already does. Thus this extra attribute keyword has been
removed and the `error` name has been used to rename the `msg` attribute
keyword, to be in-line with what `thiserror` does.
2024-05-20 15:33:49 +02:00
Benedikt Peetz 7e2cbb4fc3
test(error_derive): Init 2024-05-20 15:33:48 +02:00
Benedikt Peetz 4f846058ba
fix(parser/unchecked/attributes): Correctly enforce an identifier in `derive`
The ebnf grammar specifies an identifier (namely “Error” in the
`derive` attribute.), while the parser expected a string literal there.
2024-05-20 15:33:47 +02:00
Benedikt Peetz 9953b50846
refactor(example/main/.cargo/config): Add a `.toml` extension
Cargo is deprecating the old name (i.e. without the `.toml` extension).
2024-05-20 15:33:46 +02:00
Benedikt Peetz 83ba3b4c17
build(treewide): Update 2024-05-20 15:33:46 +02:00
Benedikt Peetz e57bd4024d
test(results): Add a test for results 2024-05-20 15:33:45 +02:00
Benedikt Peetz 7034cf70ce
docs(c_test): Add a poc regarding results in c 2024-05-20 15:33:44 +02:00
Benedikt Peetz 7bced94bdd
test(src/types/newtypes): Test if a full round-trip works 2024-05-20 15:33:44 +02:00
Benedikt Peetz 1599631431
test(tests): Update to new String wrapper 2024-05-20 15:33:43 +02:00
Benedikt Peetz 601d82d5c9
chore(version): v0.1.1 2024-05-20 15:33:42 +02:00
Benedikt Peetz 994b3deb33
chore(version): v0.1.0 2024-05-20 15:33:41 +02:00
Benedikt Peetz 5f9ef33dfc
build(cog): Avoid building the project with nix, as this fails 2024-05-20 15:33:41 +02:00
Benedikt Peetz c9622c15bc
fix(gitignore): Don't ignore the `Cargo.lock` file 2024-05-20 15:33:39 +02:00
Benedikt Peetz ecfdb0abda
build(cog): Remove wrong toml header 2024-05-20 15:33:39 +02:00
Benedikt Peetz 447370d554
chore(treewide): Renew copyright headers 2024-05-20 15:33:38 +02:00
Benedikt Peetz 198421761c
build(cog): Use new `renew_copyright_header` script 2024-05-20 15:33:37 +02:00
Benedikt Peetz 2e92028de2
feat(src/macros)!: Store allocation location in all stringsThis makes it possible to automatically free the string in the correctway expected by both c and rust.Rust strings can now just be freed by the rust allocator, whilst cstrings are forgotten, so that the c allocator may free them.BREAKING CHANGE: All usage of explicit mentions `std::string::String` in your `handle_cmd` function will need to be replaced by `trixy::types::newtypes::String`. Otherwise these types should provide the same methods. 2024-05-20 15:33:36 +02:00
Benedikt Peetz 0f131c957f
refactor(src/macros/generate/host): Merge host generation in one module 2024-05-20 15:33:36 +02:00
Benedikt Peetz 4d76282b99
chore(Cargo.toml): Add further required metadata 2024-05-20 15:33:33 +02:00
Benedikt Peetz cc788a9493
chore(Cargo.toml): Add required metadata 2024-05-20 15:33:32 +02:00
Benedikt Peetz 6c64180676
docs(README): Mention the binary 2024-05-20 15:33:32 +02:00
Benedikt Peetz 91adaa2b70
test(types): Update to represent a minimal change in the library 2024-05-20 15:33:30 +02:00
Benedikt Peetz c787aa2e27
docs(README): Add 2024-05-20 15:33:30 +02:00
Benedikt Peetz ed4a113141
fix(example/main): Ignore generated `api.rs` debugging file 2024-05-20 15:33:22 +02:00
5 changed files with 54 additions and 12 deletions

2
Cargo.lock generated
View File

@ -291,7 +291,7 @@ dependencies = [
[[package]]
name = "trixy"
version = "0.1.1"
version = "0.2.1"
dependencies = [
"clap",
"convert_case",

View File

@ -20,7 +20,7 @@
[package]
name = "trixy"
version = "0.1.1"
version = "0.2.1"
edition = "2021"
description = "A rust crate used to generate multi-language apis for your application"
license = "LGPL-3.0-or-later"

51
NEWS.md
View File

@ -24,7 +24,56 @@ If not, see <https://www.gnu.org/licenses/>.
All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
______________________________________________________________________
- - -
## v0.2.1 - 2024-05-20
#### Bug Fixes
- **(src/types/traits/convert_trait)** Remove unneeded imports - (5253e59) - Benedikt Peetz
- - -
## v0.2.0 - 2024-05-20
#### Bug Fixes
- **(example/main)** Update to use the new result type - (1f0b9c6) - Benedikt Peetz
- **(example/main)** Ignore generated `api.rs` debugging file - (ed4a113) - *soispha*
- **(gitignore)** Don't ignore the `Cargo.lock` file - (c9622c1) - Benedikt Peetz
- **(parser/unchecked/attributes)** Correctly enforce an identifier in `derive` - (4f84605) - Benedikt Peetz
- **(src/parsing)** Remove the extra `error` attribute keyword - (650d577) - Benedikt Peetz
#### Build system
- **(NEWS.md)** Restore separator - (243a89b) - Benedikt Peetz
- **(cog)** Avoid building the project with nix, as this fails - (5f9ef33) - Benedikt Peetz
- **(cog)** Remove wrong toml header - (ecfdb0a) - Benedikt Peetz
- **(cog)** Use new `renew_copyright_header` script - (1984217) - Benedikt Peetz
- **(flake)** Ignore correct changelog file - (477b9e1) - Benedikt Peetz
- **(treewide)** Update - (83ba3b4) - Benedikt Peetz
- **(update.sh)** Don't always perform the expensive `upgrade` - (ee8e860) - Benedikt Peetz
#### Documentation
- **(README)** Mention the binary - (6c64180) - *soispha*
- **(README)** Add - (c787aa2) - *soispha*
- **(c_test)** Add a poc regarding results in c - (7034cf7) - Benedikt Peetz
- **(grammar.pdf)** Regenerate with new landscape ebnf2pdf script - (c6dc9db) - Benedikt Peetz
#### Features
- **(src)** Add real and working support for results - (9000c1d) - Benedikt Peetz
- **(src/macros)** Store allocation location in all stringsThis makes it possible to automatically free the string in the correctway expected by both c and rust.Rust strings can now just be freed by the rust allocator, whilst cstrings are forgotten, so that the c allocator may free them.BREAKING CHANGE: All usage of explicit mentions `std::string::String` in your `handle_cmd` function will need to be replaced by `trixy::types::newtypes::String`. Otherwise these types should provide the same methods. - (2e92028) - Benedikt Peetz
#### Miscellaneous Chores
- **(Cargo.toml)** Add further required metadata - (4d76282) - Benedikt Peetz
- **(Cargo.toml)** Add required metadata - (cc788a9) - Benedikt Peetz
- **(c_test)** Remove the POC - (d1f31c2) - Benedikt Peetz
- **(treewide)** Add missing license headers - (1677f5c) - Benedikt Peetz
- **(treewide)** Renew copyright headers - (447370d) - Benedikt Peetz
- **(version)** v0.1.1 - (601d82d) - Benedikt Peetz
- **(version)** v0.1.0 - (994b3de) - Benedikt Peetz
#### Refactoring
- **(example/main/.cargo/config)** Add a `.toml` extension - (9953b50) - Benedikt Peetz
- **(src/macros/generate/host)** Merge host generation in one module - (0f131c9) - Benedikt Peetz
#### Tests
- **(error_derive)** Init - (7e2cbb4) - Benedikt Peetz
- **(results)** Add a test for results - (e57bd40) - Benedikt Peetz
- **(src/types/newtypes)** Test if a full round-trip works - (7bced94) - Benedikt Peetz
- **(tests)** Update to new String wrapper - (1599631) - Benedikt Peetz
- **(types)** Update to represent a minimal change in the library - (91adaa2) - *soispha*
- - -
## v0.1.0 - 2024-05-04

View File

@ -176,7 +176,7 @@
};
settings = {
global.excludes = ["CHANGELOG.md"];
global.excludes = ["NEWS.md"];
formatter = {
clang-format = {
options = ["--style" "GNU"];

View File

@ -22,14 +22,7 @@
use crate::types::error::{self, TypeConversionError};
use log::warn;
use std::{
error::Error,
ffi::{c_char, CString},
mem::ManuallyDrop,
ptr,
};
use super::errno;
use std::ffi::{c_char, CString};
/// Convert a value into a data structure that we can send directly to c.
pub trait Convertible