##// END OF EJS Templates
contrib: install PyOxidizer in Linux and Windows environments...
contrib: install PyOxidizer in Linux and Windows environments For Linux, this was trivial. For Windows, we need to teach the powershell script to install Rust as well. This was also pretty straightforward. Differential Revision: https://phab.mercurial-scm.org/D8468

File last commit:

r45018:d4f19eb4 default
r45267:6a6c15ce stable
Show More
lib.rs
69 lines | 2.0 KiB | application/rls-services+xml | RustLexer
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 // lib.rs
//
// Copyright 2018 Georges Racinet <gracinet@anybox.fr>
//
// This software may be used and distributed according to the terms of the
// GNU General Public License version 2 or any later version.
//! Python bindings of `hg-core` objects using the `cpython` crate.
//! Once compiled, the resulting single shared library object can be placed in
//! the `mercurial` package directly as `rustext.so` or `rustext.dll`.
//! It holds several modules, so that from the point of view of Python,
//! it behaves as the `cext` package.
//!
//! Example:
Georges Racinet
rust-cpython: rustdoc improvements...
r41220 //!
//! ```text
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 //! >>> from mercurial.rustext import ancestor
//! >>> ancestor.__doc__
//! 'Generic DAG ancestor algorithms - Rust implementation'
//! ```
Raphaël Gomès
rust: switch hg-core and hg-cpython to rust 2018 edition...
r42828 /// This crate uses nested private macros, `extern crate` is still needed in
/// 2018 edition.
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 #[macro_use]
extern crate cpython;
Georges Racinet
rust-cpython: rustdoc improvements...
r41220 pub mod ancestors;
Georges Racinet
rust-cpython: implement Graph using C parents function...
r41082 mod cindex;
Georges Racinet
rust-cpython: moved generic conversion fn out of ancestors module...
r41276 mod conversion;
Raphaël Gomès
rust-cpython: add macro for sharing references...
r42997 #[macro_use]
pub mod ref_sharing;
Georges Racinet
rust-cpython: binding for headrevs()...
r41843 pub mod dagops;
Raphaël Gomès
rust-cpython: add `debug` module to expose debug information to Python...
r45018 pub mod debug;
Raphaël Gomès
rust: run rfmt on all hg-core/hg-cpython code...
r42760 pub mod dirstate;
Georges Racinet
rust-discovery: cpython bindings for the core logic...
r42356 pub mod discovery;
Georges Racinet
rust-cpython: rustdoc improvements...
r41220 pub mod exceptions;
Raphaël Gomès
rust: run cargo fmt
r43087 pub mod parsers;
rust-index: add a function to convert PyObject index for hg-core...
r44398 pub mod revlog;
Raphaël Gomès
rust-utils: introduce a debug util to print the python stack trace...
r43545 pub mod utils;
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001
py_module_initializer!(rustext, initrustext, PyInit_rustext, |py, m| {
m.add(
py,
"__doc__",
"Mercurial core concepts - Rust implementation",
)?;
let dotted_name: String = m.get(py, "__name__")?.extract(py)?;
m.add(py, "ancestor", ancestors::init_module(py, &dotted_name)?)?;
Georges Racinet
rust-cpython: binding for headrevs()...
r41843 m.add(py, "dagop", dagops::init_module(py, &dotted_name)?)?;
Raphaël Gomès
rust-cpython: add `debug` module to expose debug information to Python...
r45018 m.add(py, "debug", debug::init_module(py, &dotted_name)?)?;
Georges Racinet
rust-discovery: cpython bindings for the core logic...
r42356 m.add(py, "discovery", discovery::init_module(py, &dotted_name)?)?;
Raphaël Gomès
rust-dirstate: add rust-cpython bindings to the new parse/pack functions...
r42489 m.add(py, "dirstate", dirstate::init_module(py, &dotted_name)?)?;
Georges Racinet
rust-index: add a struct wrapping the C index...
r44413 m.add(py, "revlog", revlog::init_module(py, &dotted_name)?)?;
Raphaël Gomès
rust: run rfmt on all hg-core/hg-cpython code...
r42760 m.add(
py,
Raphaël Gomès
rust-parsers: move parser bindings to their own file and Python module...
r42992 "parsers",
parsers::init_parsers_module(py, &dotted_name)?,
)?;
Georges Racinet
rust-cpython: start cpython crate bindings...
r41001 m.add(py, "GraphError", py.get_type::<exceptions::GraphError>())?;
Ok(())
});
Yuya Nishihara
rust-cpython: prepare for writing tests that require libpython...
r43583
#[cfg(not(any(feature = "python27-bin", feature = "python3-bin")))]
#[test]
#[ignore]
fn libpython_must_be_linked_to_run_tests() {
// stub function to tell that some tests wouldn't run
}