Skip to content
Extraits de code Groupes Projets
Vérifiée Valider 4046bd79 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

RUST: Hide the C types behind a feature to forbid any usage by safe creates

parent 47c3e4ec
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -9,3 +9,6 @@ license.workspace = true
log.workspace = true
libc.workspace = true
lazy_static.workspace = true
[features]
c_types = []
......@@ -4,10 +4,19 @@
//! From safe rust code you *must not* use the types defined in the [c_types]
//! module.
pub mod c_types;
pub(crate) mod c_types;
mod rs_types;
pub use rs_types::*;
/// Re-exports the Rust types.
pub mod rs {
pub use crate::rs_types::*;
}
/// Re-exports the C types if the feature is enabled.
#[cfg(feature = "c_types")]
pub mod c {
pub use crate::c_types::*;
}
pub use libc::{c_char, c_int, c_long, c_uint, c_void, size_t};
......
//! The crate responsible of downloading karas from kurisu.
use lektor_c_compat::*;
use lektor_c_compat::rs::*;
/// The structure responsible to download karas from kurisu.
pub struct LktModuleRepoRs {
......
......@@ -9,6 +9,6 @@ crate-type = ["staticlib"]
[dependencies]
log.workspace = true
lektor_c_compat = { path = "../lektor_c_compat" }
lektor_c_compat = { path = "../lektor_c_compat", features = ["c_types"] }
lektor_repo = { path = "../lektor_repo" }
lektor_db = { path = "../lektor_db" }
......@@ -6,6 +6,6 @@
pub mod db;
pub mod repo;
pub(crate) use lektor_c_compat::*;
pub(crate) use lektor_c_compat::{c::*, *};
pub(crate) use log::error;
pub(crate) use std::{mem::ManuallyDrop, path::PathBuf};
use crate::{c_types::*, *};
use crate::*;
use lektor_repo::*;
/// A pointer to the repo structure. This is the only thing the C code will see.
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter