rust/hg-cpython/src/parsers.rs
changeset 42799 5399532510ae
parent 42793 98901eb12245
child 42802 2e1f74cc3350
equal deleted inserted replaced
42798:99dff4264524 42799:5399532510ae
    13 use cpython::{
    13 use cpython::{
    14     exc, PyBytes, PyDict, PyErr, PyInt, PyModule, PyResult, PyTuple, Python,
    14     exc, PyBytes, PyDict, PyErr, PyInt, PyModule, PyResult, PyTuple, Python,
    15     PythonObject, ToPyObject,
    15     PythonObject, ToPyObject,
    16 };
    16 };
    17 use hg::{
    17 use hg::{
    18     pack_dirstate, parse_dirstate, utils::copy_into_array, DirstateEntry,
    18     pack_dirstate, parse_dirstate, DirstateEntry,
    19     DirstatePackError, DirstateParents, DirstateParseError, PARENT_SIZE,
    19     DirstatePackError, DirstateParents, DirstateParseError, PARENT_SIZE,
    20 };
    20 };
    21 use std::collections::HashMap;
    21 use std::collections::HashMap;
       
    22 use std::convert::TryInto;
    22 
    23 
    23 use libc::c_char;
    24 use libc::c_char;
    24 
    25 
    25 use crate::dirstate::{decapsule_make_dirstate_tuple, extract_dirstate};
    26 use crate::dirstate::{decapsule_make_dirstate_tuple, extract_dirstate};
    26 use std::time::Duration;
    27 use std::time::Duration;
   118 
   119 
   119     match pack_dirstate(
   120     match pack_dirstate(
   120         &mut dirstate_map,
   121         &mut dirstate_map,
   121         &copies?,
   122         &copies?,
   122         DirstateParents {
   123         DirstateParents {
   123             p1: copy_into_array(&p1),
   124             p1: p1.try_into().unwrap(),
   124             p2: copy_into_array(&p2),
   125             p2: p2.try_into().unwrap(),
   125         },
   126         },
   126         Duration::from_secs(now.as_object().extract::<u64>(py)?),
   127         Duration::from_secs(now.as_object().extract::<u64>(py)?),
   127     ) {
   128     ) {
   128         Ok(packed) => {
   129         Ok(packed) => {
   129             for (
   130             for (