author | Pierre-Yves David <pierre-yves.david@octobus.net> |
Tue, 18 Feb 2025 22:24:08 +0100 | |
changeset 52964 | 469b9a628b51 |
parent 52870 | 38e16da74aea |
permissions | -rw-r--r-- |
52849
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
1 |
// dirstate.rs |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
2 |
// |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
3 |
// Copyright 2019 Raphaël Gomès <rgomes@octobus.net> |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
4 |
// 2025 Georges Racinet <georges.racinet@cloudcrane.io> |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
5 |
// |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
6 |
// This software may be used and distributed according to the terms of the |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
7 |
// GNU General Public License version 2 or any later version. |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
8 |
|
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
9 |
//! Bindings for the `hg::dirstate` module provided by the |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
10 |
//! `hg-core` package. |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
11 |
//! |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
12 |
//! From Python, this will be seen as `mercurial.pyo3_rustext.dirstate` |
52850
ffda57aa98fa
rust-pyo3-dirstate: defining FallbackError
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52849
diff
changeset
|
13 |
use crate::{exceptions, utils::new_submodule}; |
52849
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
14 |
use pyo3::prelude::*; |
52855
138e4ce24680
rust-pyo3-dirstate: DirstateItem class
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52854
diff
changeset
|
15 |
mod item; |
138e4ce24680
rust-pyo3-dirstate: DirstateItem class
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52854
diff
changeset
|
16 |
use item::DirstateItem; |
52854
4e5efcaa7e60
rust-pyo3-dirstate: DirstateIdentity class
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52850
diff
changeset
|
17 |
mod dirstate_map; |
52861
c5773445d350
rust-pyo3-dirstate: DirstateMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52857
diff
changeset
|
18 |
use dirstate_map::{ |
c5773445d350
rust-pyo3-dirstate: DirstateMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52857
diff
changeset
|
19 |
DirstateIdentity, DirstateMap, DirstateMapItemsIterator, |
c5773445d350
rust-pyo3-dirstate: DirstateMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52857
diff
changeset
|
20 |
DirstateMapKeysIterator, |
c5773445d350
rust-pyo3-dirstate: DirstateMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52857
diff
changeset
|
21 |
}; |
52865
6b38ff460f2a
rust-pyo3-dirstate: CopyMap without proxy methods
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52861
diff
changeset
|
22 |
mod copy_map; |
52866
c917656a259d
rust-pyo3-dirstate: CopyMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52865
diff
changeset
|
23 |
use copy_map::{CopyMap, CopyMapItemsIterator, CopyMapKeysIterator}; |
52867
aa2cfeed65c9
rust-pyo3-dirstate: Dirs definition and constructor
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52866
diff
changeset
|
24 |
mod dirs_multiset; |
52869
8c11ec902e73
rust-pyo3-dirstate: DirsMultisetKeysIterator
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52867
diff
changeset
|
25 |
use dirs_multiset::{Dirs, DirsMultisetKeysIterator}; |
52870
38e16da74aea
rust-pyo3-dirstate: status
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52869
diff
changeset
|
26 |
mod status; |
52849
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
27 |
|
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
28 |
pub fn init_module<'py>( |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
29 |
py: Python<'py>, |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
30 |
package: &str, |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
31 |
) -> PyResult<Bound<'py, PyModule>> { |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
32 |
let m = new_submodule(py, package, "dirstate")?; |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
33 |
m.add("__doc__", "Dirstate - Rust implementation exposed via PyO3")?; |
52850
ffda57aa98fa
rust-pyo3-dirstate: defining FallbackError
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52849
diff
changeset
|
34 |
m.add("FallbackError", py.get_type::<exceptions::FallbackError>())?; |
52854
4e5efcaa7e60
rust-pyo3-dirstate: DirstateIdentity class
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52850
diff
changeset
|
35 |
m.add_class::<DirstateIdentity>()?; |
52855
138e4ce24680
rust-pyo3-dirstate: DirstateItem class
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52854
diff
changeset
|
36 |
m.add_class::<DirstateItem>()?; |
52857
e7b825893e1b
rust-pyo3-dirsate: DirstateMap definition and constructors
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52855
diff
changeset
|
37 |
m.add_class::<DirstateMap>()?; |
52861
c5773445d350
rust-pyo3-dirstate: DirstateMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52857
diff
changeset
|
38 |
m.add_class::<DirstateMapKeysIterator>()?; |
c5773445d350
rust-pyo3-dirstate: DirstateMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52857
diff
changeset
|
39 |
m.add_class::<DirstateMapItemsIterator>()?; |
52865
6b38ff460f2a
rust-pyo3-dirstate: CopyMap without proxy methods
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52861
diff
changeset
|
40 |
m.add_class::<CopyMap>()?; |
52866
c917656a259d
rust-pyo3-dirstate: CopyMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52865
diff
changeset
|
41 |
m.add_class::<CopyMapKeysIterator>()?; |
c917656a259d
rust-pyo3-dirstate: CopyMap iterators
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52865
diff
changeset
|
42 |
m.add_class::<CopyMapItemsIterator>()?; |
52867
aa2cfeed65c9
rust-pyo3-dirstate: Dirs definition and constructor
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52866
diff
changeset
|
43 |
m.add_class::<Dirs>()?; |
52869
8c11ec902e73
rust-pyo3-dirstate: DirsMultisetKeysIterator
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52867
diff
changeset
|
44 |
m.add_class::<DirsMultisetKeysIterator>()?; |
52870
38e16da74aea
rust-pyo3-dirstate: status
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
52869
diff
changeset
|
45 |
m.add_function(wrap_pyfunction!(self::status::status, &m)?)?; |
52849
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
46 |
Ok(m) |
d0c0ad938eb9
rust-pyo3-dirstate: module definition
Georges Racinet <georges.racinet@cloudcrane.io>
parents:
diff
changeset
|
47 |
} |