Mercurial > hg
view contrib/chg/util.h @ 41114:b31a41f24864
rust-cpython: binding for LazyAncestors
The `mercurial.rustext.ancestor` module will not in the foreseeable
future be a drop-in replacement for the pure `mercurial.ancestor`, because the
Rust variants take the index at instantiation whereas the Python ones
take a parents function. From the Python side, using the index from `ancestor`
would leak internal details out of `mercurial.revlog`, and that's unwanted.
Therefore, given that classes defined in
`rust-cpython` have the same names in both language, we keep the Rust naming
convention (CamelCase).
Eventually, though, the ancestor module can be placed under control of
`mercurial.policy`, but it will still be up to `revlog` to be aware of
that and play the role of a factory for instantiation.
Differential Revision: https://phab.mercurial-scm.org/D5441
author | Georges Racinet <gracinet@anybox.fr> |
---|---|
date | Thu, 13 Dec 2018 18:53:40 +0100 |
parents | 9724f54923ec |
children |
line wrap: on
line source
/* * Utility functions * * Copyright (c) 2011 Yuya Nishihara <yuya@tcha.org> * * This software may be used and distributed according to the terms of the * GNU General Public License version 2 or any later version. */ #ifndef UTIL_H_ #define UTIL_H_ #ifdef __GNUC__ #define PRINTF_FORMAT_ __attribute__((format(printf, 1, 2))) #define UNUSED_ __attribute__((unused)) #else #define PRINTF_FORMAT_ #define UNUSED_ #endif void abortmsg(const char *fmt, ...) PRINTF_FORMAT_; void abortmsgerrno(const char *fmt, ...) PRINTF_FORMAT_; void enablecolor(void); void enabledebugmsg(void); void debugmsg(const char *fmt, ...) PRINTF_FORMAT_; void fchdirx(int dirfd); void fsetcloexec(int fd); void *mallocx(size_t size); void *reallocx(void *ptr, size_t size); int runshellcmd(const char *cmd, const char *envp[], const char *cwd); #endif /* UTIL_H_ */