Library of Assembled Shared Sources
export_traits.h File Reference
#include "python_common.h"
#include "shadowee_traits.h"
#include "exception.h"
#include "pyobject_ptr.h"
#include "no_none.h"
#include "maybe_none.h"
#include "self.h"
#include "../num/num_cast.h"
Include dependency graph for export_traits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lass::python::PyExportTraits< T >
 by copy, general case assumes shadow type or PyObjectPlus based type. More...
 
struct  lass::python::PyExportTraits< const T >
 constant objects can only be build. More...
 
struct  lass::python::PyExportTraits< util::SharedPtr< T, S, C > >
 SharedPtr assumes shadow types or PyObjectPlus types. More...
 
struct  lass::python::PyExportTraits< TPyObjPtr >
 A shared PyObject pointer is mapped to Any in Python. More...
 
struct  lass::python::PyExportTraits< std::unique_ptr< T, Deleter > >
 std::unique_ptr assumes shadow types More...
 
struct  lass::python::PyExportTraits< std::shared_ptr< T > >
 std::shared_ptr assumes shadow types. More...
 
struct  lass::python::PyExportTraitsNoNone< T >
 Helper class to create PyExportTraits for NoNone wrapped types. More...
 
struct  lass::python::PyExportTraits< NoNone< T * > >
 NoNone<T*> type-hints as T and refuses None as value. More...
 
struct  lass::python::PyExportTraits< NoNone< util::SharedPtr< T, S, C > > >
 Type-hints NoNone<util::SharedPtr<T>> as T and refuses None as value. More...
 
struct  lass::python::PyExportTraits< NoNone< std::shared_ptr< T > > >
 NoNone<std::shared_ptr<T>> type-hints as T and refuses None as value. More...
 
struct  lass::python::PyExportTraitsMaybeNone< T >
 Helper class to create PyExportTraits for MaybeNone wrapped types. More...
 
struct  lass::python::PyExportTraits< MaybeNone< T * > >
 MaybeNone<T*> type-hints a type as T | MaybeNone More...
 
struct  lass::python::PyExportTraits< MaybeNone< util::SharedPtr< T, S, C > > >
 MaybeNone<util::SharedPtr<T>> type-hints a type as T | MaybeNone More...
 
struct  lass::python::PyExportTraits< MaybeNone< std::shared_ptr< T > > >
 MaybeNone<std::shared_ptr<T>> type-hints a type as T | MaybeNone More...
 
struct  lass::python::PyExportTraits< Self< T > >
 Self<T> type-hints as Self. More...
 
struct  lass::python::PyExportTraitsSigned< Integer >
 Helper class to create PyExportTraits for signed integers. More...
 
struct  lass::python::PyExportTraits< signed char >
 signed char is mapped to Python int More...
 
struct  lass::python::PyExportTraits< signed short >
 signed short is mapped to Python int More...
 
struct  lass::python::PyExportTraits< signed int >
 signed int is mapped to Python int More...
 
struct  lass::python::PyExportTraits< signed long >
 signed long is mapped to Python int More...
 
struct  lass::python::PyExportTraitsUnsigned< Integer >
 Helper class to create PyExportTraits for unsigned integers. More...
 
struct  lass::python::PyExportTraits< unsigned char >
 unsigned char is mapped to Python int More...
 
struct  lass::python::PyExportTraits< unsigned short >
 unsigned short is mapped to Python int More...
 
struct  lass::python::PyExportTraits< unsigned int >
 unsigned int is mapped to Python int More...
 
struct  lass::python::PyExportTraits< unsigned long >
 unsigned long is mapped to Python int More...
 
struct  lass::python::PyExportTraitsFloat< Float >
 Helper class to create PyExportTraits for floating point numbers. More...
 
struct  lass::python::PyExportTraits< float >
 float is mapped to Python float type, which is a C double. More...
 
struct  lass::python::PyExportTraits< double >
 double is mapped to Python float type, which is also a C double. More...
 
struct  lass::python::PyExportTraits< long double >
 long double is mapped to Python float type, which is a C double. More...
 
struct  lass::python::PyExportTraits< std::complex< T > >
 std::complex<T> is always mapped to Python complex type. More...
 
struct  lass::python::PyExportTraits< std::basic_string_view< T > >
 std::basic_string_view<T> is mapped to Python str More...
 
struct  lass::python::PyExportTraits< const char16_t * >
 UTF-16 const char16_t* string is mapped to Python str | None, as it can be null. More...
 
struct  lass::python::PyExportTraits< std::u16string >
 UTF-16 std::u16string is mapped to str More...
 
struct  lass::python::PyExportTraits< const char32_t * >
 UTF-32 const char32_t* string is mapped to Python str | None, as it can be null. More...
 
struct  lass::python::PyExportTraits< std::u32string >
 UTF-32 std::u32string is mapped to str More...
 
class  lass::python::impl::NoNone< T >
 Wrapper to prevent None values being passed to and from Python. More...
 

Namespaces

namespace  lass
 Library for Assembled Shared Sources.
 
namespace  lass::python
 Comprehensive C++ to Python binding library.
 

Detailed Description

Author
Bram de Greve (bram@.nosp@m.coca.nosp@m.mware.nosp@m..com)
Tom De Muer (tom@c.nosp@m.ocam.nosp@m.ware..nosp@m.com)

*** BEGIN LICENSE INFORMATION ***

The contents of this file are subject to the Common Public Attribution License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://lass.sourceforge.net/cpal-license. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

The Original Code is LASS - Library of Assembled Shared Sources.

The Initial Developer of the Original Code is Bram de Greve and Tom De Muer. The Original Developer is the Initial Developer.

All portions of the code written by the Initial Developer are: Copyright (C) 2004-2025 the Initial Developer. All Rights Reserved.

Contributor(s):

Alternatively, the contents of this file may be used under the terms of the GNU General Public License Version 2 or later (the GPL), in which case the provisions of GPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the GPL and not to allow others to use your version of this file under the CPAL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the GPL License. If you do not delete the provisions above, a recipient may use your version of this file under either the CPAL or the GPL.

*** END LICENSE INFORMATION ***

Definition in file export_traits.h.