Address review comments
This commit is contained in:
parent
399e4bf9b1
commit
ca6227c739
|
@ -16,15 +16,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||
* The implementation for `IntoPy<U> for T` where `U: FromPy<T>` is no longer specializable. Control the behavior of this via the implementation of `FromPy`. [#713](https://github.com/PyO3/pyo3/pull/713)
|
||||
* Use `parking_lot::Mutex` instead of `spin::Mutex`. [#734](https://github.com/PyO3/pyo3/pull/734)
|
||||
* Bumped minimum Rust version to `1.42.0-nightly 2020-01-21`. [#761](https://github.com/PyO3/pyo3/pull/761)
|
||||
* `PyRef` and `PyRefMut` are renewed for `PyCell`. [#770](https://github.com/PyO3/pyo3/pull/770)
|
||||
|
||||
### Added
|
||||
* `PyCell`, which has RefCell-like features. [#770](https://github.com/PyO3/pyo3/pull/770)
|
||||
* `PyClass`, `PyClassShell`, `PyObjectLayout`, `PyClassInitializer`. [#683](https://github.com/PyO3/pyo3/pull/683)
|
||||
* `PyClass`, `PyLayout`, `PyClassInitializer`. [#683](https://github.com/PyO3/pyo3/pull/683)
|
||||
* Implemented `IntoIterator` for `PySet` and `PyFrozenSet`. [#716](https://github.com/PyO3/pyo3/pull/716)
|
||||
* `FromPyObject` is now automatically implemented for `T: Clone` pyclasses. [#730](https://github.com/PyO3/pyo3/pull/730)
|
||||
* `#[pyo3(get)]` and `#[pyo3(set)]` will now use the Rust doc-comment from the field for the Python property. [#755](https://github.com/PyO3/pyo3/pull/755)
|
||||
* `#[setter]` functions may now take an argument of `Pyo3::Python`. [#760](https://github.com/PyO3/pyo3/pull/760)
|
||||
* New `PyRef` and `PyRefMut`. [#770](https://github.com/PyO3/pyo3/pull/770)
|
||||
* `PyTypeInfo::BaseLayout` and `PyClass::BaseNativeType`. [#770](https://github.com/PyO3/pyo3/pull/770)
|
||||
* `PyDowncastImpl`. [#770](https://github.com/PyO3/pyo3/pull/770)
|
||||
|
||||
|
@ -38,7 +38,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||
|
||||
### Removed
|
||||
|
||||
* `PyRef`, `PyRefMut`, `PyRawObject`. [#683](https://github.com/PyO3/pyo3/pull/683)
|
||||
* `PyRawObject`. [#683](https://github.com/PyO3/pyo3/pull/683)
|
||||
* `PyNoArgsFunction`. [#741](https://github.com/PyO3/pyo3/pull/741)
|
||||
* `initialize_type()`. To set the module name for a `#[pyclass]`, use the `module` argument to the macro. #[751](https://github.com/PyO3/pyo3/pull/751)
|
||||
* `AsPyRef::as_mut/with/with_mut/into_py/into_mut_py`. [#770](https://github.com/PyO3/pyo3/pull/770)
|
||||
|
|
|
@ -64,7 +64,7 @@ impl<T: PyClass> AsPyPointer for PyCellInner<T> {
|
|||
|
||||
unsafe impl<T: PyClass> PyLayout<T> for PyCellInner<T> {
|
||||
const IS_NATIVE_TYPE: bool = false;
|
||||
fn get_super_or(&mut self) -> Option<&mut T::BaseLayout> {
|
||||
fn get_super(&mut self) -> Option<&mut T::BaseLayout> {
|
||||
Some(&mut self.ob_base)
|
||||
}
|
||||
unsafe fn get_ptr(&self) -> *mut T {
|
||||
|
@ -350,7 +350,7 @@ impl<T: PyClass> PyCell<T> {
|
|||
|
||||
unsafe impl<T: PyClass> PyLayout<T> for PyCell<T> {
|
||||
const IS_NATIVE_TYPE: bool = false;
|
||||
fn get_super_or(&mut self) -> Option<&mut T::BaseLayout> {
|
||||
fn get_super(&mut self) -> Option<&mut T::BaseLayout> {
|
||||
Some(&mut self.inner.ob_base)
|
||||
}
|
||||
unsafe fn get_ptr(&self) -> *mut T {
|
||||
|
|
|
@ -78,7 +78,7 @@ pub trait PyClass:
|
|||
/// Specify this class has `#[pyclass(weakref)]` or not.
|
||||
type WeakRef: PyClassWeakRef;
|
||||
/// The closest native ancestor. This is `PyAny` by default, and when you declare
|
||||
/// `#[pyclass(extends=PyList)]`, it's `PyList`.
|
||||
/// `#[pyclass(extends=PyDict)]`, it's `PyDict`.
|
||||
type BaseNativeType: PyTypeInfo + PyNativeType;
|
||||
}
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ impl<T: PyClass> PyObjectInit<T> for PyClassInitializer<T> {
|
|||
unsafe {
|
||||
layout.py_init(init);
|
||||
}
|
||||
if let Some(super_obj) = layout.get_super_or() {
|
||||
if let Some(super_obj) = layout.get_super() {
|
||||
super_init.init_class(super_obj);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ use std::sync::atomic::{AtomicBool, Ordering};
|
|||
/// This trait is intended to be used internally.
|
||||
pub unsafe trait PyLayout<T: PyTypeInfo> {
|
||||
const IS_NATIVE_TYPE: bool = true;
|
||||
fn get_super_or(&mut self) -> Option<&mut T::BaseLayout> {
|
||||
fn get_super(&mut self) -> Option<&mut T::BaseLayout> {
|
||||
None
|
||||
}
|
||||
unsafe fn py_init(&mut self, _value: T) {}
|
||||
|
|
Loading…
Reference in New Issue