mqt-core 3.3.2__cp314-cp314t-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mqt/core/__init__.py +89 -0
- mqt/core/__main__.py +55 -0
- mqt/core/_commands.py +52 -0
- mqt/core/_compat/__init__.py +11 -0
- mqt/core/_compat/typing.py +29 -0
- mqt/core/_version.py +34 -0
- mqt/core/_version.pyi +12 -0
- mqt/core/bin/mqt-core-algorithms.dll +0 -0
- mqt/core/bin/mqt-core-circuit-optimizer.dll +0 -0
- mqt/core/bin/mqt-core-dd.dll +0 -0
- mqt/core/bin/mqt-core-ds.dll +0 -0
- mqt/core/bin/mqt-core-fomac.dll +0 -0
- mqt/core/bin/mqt-core-ir.dll +0 -0
- mqt/core/bin/mqt-core-na-fomac.dll +0 -0
- mqt/core/bin/mqt-core-na.dll +0 -0
- mqt/core/bin/mqt-core-qasm.dll +0 -0
- mqt/core/bin/mqt-core-qdmi-driver.dll +0 -0
- mqt/core/bin/mqt-core-qdmi-na-device.dll +0 -0
- mqt/core/bin/mqt-core-zx.dll +0 -0
- mqt/core/dd.cp314t-win_amd64.pyd +0 -0
- mqt/core/dd.pyi +1016 -0
- mqt/core/dd_evaluation.py +368 -0
- mqt/core/fomac.cp314t-win_amd64.pyd +0 -0
- mqt/core/fomac.pyi +125 -0
- mqt/core/include/mqt-core/algorithms/BernsteinVazirani.hpp +39 -0
- mqt/core/include/mqt-core/algorithms/GHZState.hpp +18 -0
- mqt/core/include/mqt-core/algorithms/Grover.hpp +33 -0
- mqt/core/include/mqt-core/algorithms/QFT.hpp +21 -0
- mqt/core/include/mqt-core/algorithms/QPE.hpp +30 -0
- mqt/core/include/mqt-core/algorithms/RandomCliffordCircuit.hpp +22 -0
- mqt/core/include/mqt-core/algorithms/StatePreparation.hpp +43 -0
- mqt/core/include/mqt-core/algorithms/WState.hpp +18 -0
- mqt/core/include/mqt-core/algorithms/mqt_core_algorithms_export.h +43 -0
- mqt/core/include/mqt-core/boost/config/abi/borland_prefix.hpp +27 -0
- mqt/core/include/mqt-core/boost/config/abi/borland_suffix.hpp +12 -0
- mqt/core/include/mqt-core/boost/config/abi/msvc_prefix.hpp +22 -0
- mqt/core/include/mqt-core/boost/config/abi/msvc_suffix.hpp +8 -0
- mqt/core/include/mqt-core/boost/config/abi_prefix.hpp +25 -0
- mqt/core/include/mqt-core/boost/config/abi_suffix.hpp +25 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx03.hpp +211 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx11.hpp +212 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx14.hpp +47 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx17.hpp +65 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx20.hpp +59 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx23.hpp +41 -0
- mqt/core/include/mqt-core/boost/config/assert_cxx98.hpp +23 -0
- mqt/core/include/mqt-core/boost/config/auto_link.hpp +525 -0
- mqt/core/include/mqt-core/boost/config/compiler/borland.hpp +342 -0
- mqt/core/include/mqt-core/boost/config/compiler/clang.hpp +370 -0
- mqt/core/include/mqt-core/boost/config/compiler/clang_version.hpp +89 -0
- mqt/core/include/mqt-core/boost/config/compiler/codegear.hpp +389 -0
- mqt/core/include/mqt-core/boost/config/compiler/comeau.hpp +59 -0
- mqt/core/include/mqt-core/boost/config/compiler/common_edg.hpp +185 -0
- mqt/core/include/mqt-core/boost/config/compiler/compaq_cxx.hpp +19 -0
- mqt/core/include/mqt-core/boost/config/compiler/cray.hpp +446 -0
- mqt/core/include/mqt-core/boost/config/compiler/diab.hpp +26 -0
- mqt/core/include/mqt-core/boost/config/compiler/digitalmars.hpp +146 -0
- mqt/core/include/mqt-core/boost/config/compiler/gcc.hpp +386 -0
- mqt/core/include/mqt-core/boost/config/compiler/gcc_xml.hpp +115 -0
- mqt/core/include/mqt-core/boost/config/compiler/greenhills.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/compiler/hp_acc.hpp +153 -0
- mqt/core/include/mqt-core/boost/config/compiler/intel.hpp +577 -0
- mqt/core/include/mqt-core/boost/config/compiler/kai.hpp +33 -0
- mqt/core/include/mqt-core/boost/config/compiler/metrowerks.hpp +201 -0
- mqt/core/include/mqt-core/boost/config/compiler/mpw.hpp +143 -0
- mqt/core/include/mqt-core/boost/config/compiler/nvcc.hpp +64 -0
- mqt/core/include/mqt-core/boost/config/compiler/pathscale.hpp +141 -0
- mqt/core/include/mqt-core/boost/config/compiler/pgi.hpp +23 -0
- mqt/core/include/mqt-core/boost/config/compiler/sgi_mipspro.hpp +29 -0
- mqt/core/include/mqt-core/boost/config/compiler/sunpro_cc.hpp +225 -0
- mqt/core/include/mqt-core/boost/config/compiler/vacpp.hpp +189 -0
- mqt/core/include/mqt-core/boost/config/compiler/visualc.hpp +398 -0
- mqt/core/include/mqt-core/boost/config/compiler/xlcpp.hpp +303 -0
- mqt/core/include/mqt-core/boost/config/compiler/xlcpp_zos.hpp +174 -0
- mqt/core/include/mqt-core/boost/config/detail/cxx_composite.hpp +218 -0
- mqt/core/include/mqt-core/boost/config/detail/posix_features.hpp +95 -0
- mqt/core/include/mqt-core/boost/config/detail/select_compiler_config.hpp +157 -0
- mqt/core/include/mqt-core/boost/config/detail/select_platform_config.hpp +147 -0
- mqt/core/include/mqt-core/boost/config/detail/select_stdlib_config.hpp +121 -0
- mqt/core/include/mqt-core/boost/config/detail/suffix.hpp +1334 -0
- mqt/core/include/mqt-core/boost/config/header_deprecated.hpp +26 -0
- mqt/core/include/mqt-core/boost/config/helper_macros.hpp +37 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/cmath.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/complex.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/functional.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/memory.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/no_tr1/utility.hpp +28 -0
- mqt/core/include/mqt-core/boost/config/platform/aix.hpp +33 -0
- mqt/core/include/mqt-core/boost/config/platform/amigaos.hpp +15 -0
- mqt/core/include/mqt-core/boost/config/platform/beos.hpp +26 -0
- mqt/core/include/mqt-core/boost/config/platform/bsd.hpp +83 -0
- mqt/core/include/mqt-core/boost/config/platform/cloudabi.hpp +18 -0
- mqt/core/include/mqt-core/boost/config/platform/cray.hpp +18 -0
- mqt/core/include/mqt-core/boost/config/platform/cygwin.hpp +71 -0
- mqt/core/include/mqt-core/boost/config/platform/haiku.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/hpux.hpp +87 -0
- mqt/core/include/mqt-core/boost/config/platform/irix.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/linux.hpp +106 -0
- mqt/core/include/mqt-core/boost/config/platform/macos.hpp +87 -0
- mqt/core/include/mqt-core/boost/config/platform/qnxnto.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/solaris.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/platform/symbian.hpp +97 -0
- mqt/core/include/mqt-core/boost/config/platform/vms.hpp +25 -0
- mqt/core/include/mqt-core/boost/config/platform/vxworks.hpp +422 -0
- mqt/core/include/mqt-core/boost/config/platform/wasm.hpp +23 -0
- mqt/core/include/mqt-core/boost/config/platform/win32.hpp +90 -0
- mqt/core/include/mqt-core/boost/config/platform/zos.hpp +32 -0
- mqt/core/include/mqt-core/boost/config/pragma_message.hpp +31 -0
- mqt/core/include/mqt-core/boost/config/requires_threads.hpp +92 -0
- mqt/core/include/mqt-core/boost/config/stdlib/dinkumware.hpp +324 -0
- mqt/core/include/mqt-core/boost/config/stdlib/libcomo.hpp +93 -0
- mqt/core/include/mqt-core/boost/config/stdlib/libcpp.hpp +180 -0
- mqt/core/include/mqt-core/boost/config/stdlib/libstdcpp3.hpp +482 -0
- mqt/core/include/mqt-core/boost/config/stdlib/modena.hpp +79 -0
- mqt/core/include/mqt-core/boost/config/stdlib/msl.hpp +98 -0
- mqt/core/include/mqt-core/boost/config/stdlib/roguewave.hpp +208 -0
- mqt/core/include/mqt-core/boost/config/stdlib/sgi.hpp +168 -0
- mqt/core/include/mqt-core/boost/config/stdlib/stlport.hpp +258 -0
- mqt/core/include/mqt-core/boost/config/stdlib/vacpp.hpp +74 -0
- mqt/core/include/mqt-core/boost/config/stdlib/xlcpp_zos.hpp +61 -0
- mqt/core/include/mqt-core/boost/config/user.hpp +133 -0
- mqt/core/include/mqt-core/boost/config/warning_disable.hpp +47 -0
- mqt/core/include/mqt-core/boost/config/workaround.hpp +305 -0
- mqt/core/include/mqt-core/boost/config.hpp +67 -0
- mqt/core/include/mqt-core/boost/cstdint.hpp +556 -0
- mqt/core/include/mqt-core/boost/cxx11_char_types.hpp +70 -0
- mqt/core/include/mqt-core/boost/detail/workaround.hpp +10 -0
- mqt/core/include/mqt-core/boost/limits.hpp +146 -0
- mqt/core/include/mqt-core/boost/multiprecision/complex128.hpp +24 -0
- mqt/core/include/mqt-core/boost/multiprecision/complex_adaptor.hpp +1046 -0
- mqt/core/include/mqt-core/boost/multiprecision/concepts/mp_number_archetypes.hpp +257 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float/io.hpp +698 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float/transcendental.hpp +157 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float.hpp +2297 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_complex.hpp +12 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_dec_float.hpp +3690 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/add.hpp +368 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/add_unsigned.hpp +387 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/bitwise.hpp +889 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/checked.hpp +178 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/comparison.hpp +374 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/cpp_int_config.hpp +161 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/divide.hpp +703 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/import_export.hpp +248 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/intel_intrinsics.hpp +138 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/limits.hpp +282 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/literals.hpp +295 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/misc.hpp +1457 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/multiply.hpp +848 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/serialize.hpp +211 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int/value_pack.hpp +42 -0
- mqt/core/include/mqt-core/boost/multiprecision/cpp_int.hpp +2360 -0
- mqt/core/include/mqt-core/boost/multiprecision/debug_adaptor.hpp +760 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/assert.hpp +29 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/atomic.hpp +62 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/bitscan.hpp +317 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/check_cpp11_config.hpp +64 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/constexpr.hpp +88 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/default_ops.hpp +4052 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/digits.hpp +49 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/dynamic_array.hpp +44 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/empty_value.hpp +87 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/endian.hpp +35 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/et_ops.hpp +1831 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/float128_functions.hpp +95 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/float_string_cvt.hpp +333 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/fpclassify.hpp +101 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/constants.hpp +288 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/pow.hpp +905 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/trig.hpp +1058 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/functions/trunc.hpp +82 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/generic_interconvert.hpp +687 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/hash.hpp +56 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/integer_ops.hpp +474 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/itos.hpp +39 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/min_max.hpp +106 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/no_et_ops.hpp +661 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/no_exceptions_support.hpp +55 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/number_base.hpp +1656 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/number_compare.hpp +848 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/precision.hpp +313 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/rebind.hpp +19 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/standalone_config.hpp +148 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/static_array.hpp +42 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/string_helpers.hpp +48 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/tables.hpp +80 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/ublas_interop.hpp +75 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/uniform_int_distribution.hpp +212 -0
- mqt/core/include/mqt-core/boost/multiprecision/detail/utype_helper.hpp +374 -0
- mqt/core/include/mqt-core/boost/multiprecision/eigen.hpp +248 -0
- mqt/core/include/mqt-core/boost/multiprecision/float128.hpp +920 -0
- mqt/core/include/mqt-core/boost/multiprecision/fwd.hpp +268 -0
- mqt/core/include/mqt-core/boost/multiprecision/gmp.hpp +4060 -0
- mqt/core/include/mqt-core/boost/multiprecision/integer.hpp +363 -0
- mqt/core/include/mqt-core/boost/multiprecision/logged_adaptor.hpp +834 -0
- mqt/core/include/mqt-core/boost/multiprecision/miller_rabin.hpp +221 -0
- mqt/core/include/mqt-core/boost/multiprecision/mpc.hpp +1721 -0
- mqt/core/include/mqt-core/boost/multiprecision/mpfi.hpp +2559 -0
- mqt/core/include/mqt-core/boost/multiprecision/mpfr.hpp +3644 -0
- mqt/core/include/mqt-core/boost/multiprecision/number.hpp +2500 -0
- mqt/core/include/mqt-core/boost/multiprecision/random.hpp +23 -0
- mqt/core/include/mqt-core/boost/multiprecision/rational_adaptor.hpp +1289 -0
- mqt/core/include/mqt-core/boost/multiprecision/tommath.hpp +1034 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/explicit_conversion.hpp +67 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/extract_exponent_type.hpp +28 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_backend.hpp +91 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_byte_container.hpp +51 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_complex.hpp +22 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_convertible_arithmetic.hpp +51 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_restricted_conversion.hpp +47 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/is_variable_precision.hpp +25 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/max_digits10.hpp +79 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/std_integer_traits.hpp +90 -0
- mqt/core/include/mqt-core/boost/multiprecision/traits/transcendental_reduction_type.hpp +21 -0
- mqt/core/include/mqt-core/boost/version.hpp +32 -0
- mqt/core/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +119 -0
- mqt/core/include/mqt-core/circuit_optimizer/mqt_core_circuit_optimizer_export.h +43 -0
- mqt/core/include/mqt-core/datastructures/DirectedAcyclicGraph.hpp +117 -0
- mqt/core/include/mqt-core/datastructures/DirectedGraph.hpp +158 -0
- mqt/core/include/mqt-core/datastructures/DisjointSet.hpp +50 -0
- mqt/core/include/mqt-core/datastructures/Layer.hpp +172 -0
- mqt/core/include/mqt-core/datastructures/SymmetricMatrix.hpp +57 -0
- mqt/core/include/mqt-core/datastructures/UndirectedGraph.hpp +227 -0
- mqt/core/include/mqt-core/datastructures/mqt_core_ds_export.h +43 -0
- mqt/core/include/mqt-core/dd/Approximation.hpp +45 -0
- mqt/core/include/mqt-core/dd/CachedEdge.hpp +174 -0
- mqt/core/include/mqt-core/dd/Complex.hpp +165 -0
- mqt/core/include/mqt-core/dd/ComplexNumbers.hpp +150 -0
- mqt/core/include/mqt-core/dd/ComplexValue.hpp +184 -0
- mqt/core/include/mqt-core/dd/ComputeTable.hpp +183 -0
- mqt/core/include/mqt-core/dd/DDDefinitions.hpp +139 -0
- mqt/core/include/mqt-core/dd/DDpackageConfig.hpp +104 -0
- mqt/core/include/mqt-core/dd/DensityNoiseTable.hpp +114 -0
- mqt/core/include/mqt-core/dd/Edge.hpp +416 -0
- mqt/core/include/mqt-core/dd/Export.hpp +438 -0
- mqt/core/include/mqt-core/dd/FunctionalityConstruction.hpp +75 -0
- mqt/core/include/mqt-core/dd/GateMatrixDefinitions.hpp +43 -0
- mqt/core/include/mqt-core/dd/LinkedListBase.hpp +45 -0
- mqt/core/include/mqt-core/dd/MemoryManager.hpp +193 -0
- mqt/core/include/mqt-core/dd/Node.hpp +223 -0
- mqt/core/include/mqt-core/dd/NoiseFunctionality.hpp +144 -0
- mqt/core/include/mqt-core/dd/Operations.hpp +306 -0
- mqt/core/include/mqt-core/dd/Package.hpp +2036 -0
- mqt/core/include/mqt-core/dd/Package_fwd.hpp +22 -0
- mqt/core/include/mqt-core/dd/RealNumber.hpp +255 -0
- mqt/core/include/mqt-core/dd/RealNumberUniqueTable.hpp +217 -0
- mqt/core/include/mqt-core/dd/Simulation.hpp +98 -0
- mqt/core/include/mqt-core/dd/StateGeneration.hpp +143 -0
- mqt/core/include/mqt-core/dd/StochasticNoiseOperationTable.hpp +88 -0
- mqt/core/include/mqt-core/dd/UnaryComputeTable.hpp +121 -0
- mqt/core/include/mqt-core/dd/UniqueTable.hpp +243 -0
- mqt/core/include/mqt-core/dd/mqt_core_dd_export.h +43 -0
- mqt/core/include/mqt-core/dd/statistics/MemoryManagerStatistics.hpp +84 -0
- mqt/core/include/mqt-core/dd/statistics/PackageStatistics.hpp +55 -0
- mqt/core/include/mqt-core/dd/statistics/Statistics.hpp +48 -0
- mqt/core/include/mqt-core/dd/statistics/TableStatistics.hpp +79 -0
- mqt/core/include/mqt-core/dd/statistics/UniqueTableStatistics.hpp +31 -0
- mqt/core/include/mqt-core/fomac/FoMaC.hpp +568 -0
- mqt/core/include/mqt-core/ir/Definitions.hpp +108 -0
- mqt/core/include/mqt-core/ir/Permutation.hpp +213 -0
- mqt/core/include/mqt-core/ir/QuantumComputation.hpp +596 -0
- mqt/core/include/mqt-core/ir/Register.hpp +125 -0
- mqt/core/include/mqt-core/ir/mqt_core_ir_export.h +43 -0
- mqt/core/include/mqt-core/ir/operations/AodOperation.hpp +92 -0
- mqt/core/include/mqt-core/ir/operations/CompoundOperation.hpp +212 -0
- mqt/core/include/mqt-core/ir/operations/Control.hpp +142 -0
- mqt/core/include/mqt-core/ir/operations/Expression.hpp +847 -0
- mqt/core/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
- mqt/core/include/mqt-core/ir/operations/NonUnitaryOperation.hpp +118 -0
- mqt/core/include/mqt-core/ir/operations/OpType.hpp +120 -0
- mqt/core/include/mqt-core/ir/operations/OpType.inc +76 -0
- mqt/core/include/mqt-core/ir/operations/Operation.hpp +247 -0
- mqt/core/include/mqt-core/ir/operations/StandardOperation.hpp +140 -0
- mqt/core/include/mqt-core/ir/operations/SymbolicOperation.hpp +144 -0
- mqt/core/include/mqt-core/mqt_na_qdmi/device.h +602 -0
- mqt/core/include/mqt-core/mqt_na_qdmi/types.h +78 -0
- mqt/core/include/mqt-core/na/NAComputation.hpp +185 -0
- mqt/core/include/mqt-core/na/device/Device.hpp +410 -0
- mqt/core/include/mqt-core/na/device/DeviceMemberInitializers.hpp +724 -0
- mqt/core/include/mqt-core/na/device/Generator.hpp +447 -0
- mqt/core/include/mqt-core/na/entities/Atom.hpp +62 -0
- mqt/core/include/mqt-core/na/entities/Location.hpp +154 -0
- mqt/core/include/mqt-core/na/entities/Zone.hpp +95 -0
- mqt/core/include/mqt-core/na/fomac/Device.hpp +169 -0
- mqt/core/include/mqt-core/na/mqt_core_na_export.h +43 -0
- mqt/core/include/mqt-core/na/operations/GlobalCZOp.hpp +38 -0
- mqt/core/include/mqt-core/na/operations/GlobalOp.hpp +58 -0
- mqt/core/include/mqt-core/na/operations/GlobalRYOp.hpp +42 -0
- mqt/core/include/mqt-core/na/operations/LoadOp.hpp +89 -0
- mqt/core/include/mqt-core/na/operations/LocalOp.hpp +56 -0
- mqt/core/include/mqt-core/na/operations/LocalRZOp.hpp +42 -0
- mqt/core/include/mqt-core/na/operations/LocalUOp.hpp +49 -0
- mqt/core/include/mqt-core/na/operations/MoveOp.hpp +66 -0
- mqt/core/include/mqt-core/na/operations/Op.hpp +62 -0
- mqt/core/include/mqt-core/na/operations/ShuttlingOp.hpp +51 -0
- mqt/core/include/mqt-core/na/operations/StoreOp.hpp +87 -0
- mqt/core/include/mqt-core/qasm3/Exception.hpp +85 -0
- mqt/core/include/mqt-core/qasm3/Gate.hpp +65 -0
- mqt/core/include/mqt-core/qasm3/Importer.hpp +192 -0
- mqt/core/include/mqt-core/qasm3/InstVisitor.hpp +145 -0
- mqt/core/include/mqt-core/qasm3/NestedEnvironment.hpp +41 -0
- mqt/core/include/mqt-core/qasm3/Parser.hpp +170 -0
- mqt/core/include/mqt-core/qasm3/Scanner.hpp +73 -0
- mqt/core/include/mqt-core/qasm3/Statement.hpp +486 -0
- mqt/core/include/mqt-core/qasm3/Statement_fwd.hpp +39 -0
- mqt/core/include/mqt-core/qasm3/StdGates.hpp +232 -0
- mqt/core/include/mqt-core/qasm3/Token.hpp +198 -0
- mqt/core/include/mqt-core/qasm3/Types.hpp +238 -0
- mqt/core/include/mqt-core/qasm3/Types_fwd.hpp +22 -0
- mqt/core/include/mqt-core/qasm3/mqt_core_qasm_export.h +43 -0
- mqt/core/include/mqt-core/qasm3/passes/CompilerPass.hpp +22 -0
- mqt/core/include/mqt-core/qasm3/passes/ConstEvalPass.hpp +102 -0
- mqt/core/include/mqt-core/qasm3/passes/TypeCheckPass.hpp +124 -0
- mqt/core/include/mqt-core/qdmi/Driver.hpp +431 -0
- mqt/core/include/mqt-core/zx/FunctionalityConstruction.hpp +125 -0
- mqt/core/include/mqt-core/zx/Rational.hpp +318 -0
- mqt/core/include/mqt-core/zx/Rules.hpp +132 -0
- mqt/core/include/mqt-core/zx/Simplify.hpp +182 -0
- mqt/core/include/mqt-core/zx/Utils.hpp +212 -0
- mqt/core/include/mqt-core/zx/ZXDefinitions.hpp +93 -0
- mqt/core/include/mqt-core/zx/ZXDiagram.hpp +480 -0
- mqt/core/include/mqt-core/zx/mqt_core_zx_export.h +43 -0
- mqt/core/include/nlohmann/adl_serializer.hpp +55 -0
- mqt/core/include/nlohmann/byte_container_with_subtype.hpp +103 -0
- mqt/core/include/nlohmann/detail/abi_macros.hpp +111 -0
- mqt/core/include/nlohmann/detail/conversions/from_json.hpp +577 -0
- mqt/core/include/nlohmann/detail/conversions/to_chars.hpp +1118 -0
- mqt/core/include/nlohmann/detail/conversions/to_json.hpp +479 -0
- mqt/core/include/nlohmann/detail/exceptions.hpp +291 -0
- mqt/core/include/nlohmann/detail/hash.hpp +129 -0
- mqt/core/include/nlohmann/detail/input/binary_reader.hpp +3068 -0
- mqt/core/include/nlohmann/detail/input/input_adapters.hpp +549 -0
- mqt/core/include/nlohmann/detail/input/json_sax.hpp +986 -0
- mqt/core/include/nlohmann/detail/input/lexer.hpp +1643 -0
- mqt/core/include/nlohmann/detail/input/parser.hpp +519 -0
- mqt/core/include/nlohmann/detail/input/position_t.hpp +37 -0
- mqt/core/include/nlohmann/detail/iterators/internal_iterator.hpp +35 -0
- mqt/core/include/nlohmann/detail/iterators/iter_impl.hpp +760 -0
- mqt/core/include/nlohmann/detail/iterators/iteration_proxy.hpp +235 -0
- mqt/core/include/nlohmann/detail/iterators/iterator_traits.hpp +61 -0
- mqt/core/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +130 -0
- mqt/core/include/nlohmann/detail/iterators/primitive_iterator.hpp +132 -0
- mqt/core/include/nlohmann/detail/json_custom_base_class.hpp +39 -0
- mqt/core/include/nlohmann/detail/json_pointer.hpp +988 -0
- mqt/core/include/nlohmann/detail/json_ref.hpp +78 -0
- mqt/core/include/nlohmann/detail/macro_scope.hpp +595 -0
- mqt/core/include/nlohmann/detail/macro_unscope.hpp +46 -0
- mqt/core/include/nlohmann/detail/meta/call_std/begin.hpp +17 -0
- mqt/core/include/nlohmann/detail/meta/call_std/end.hpp +17 -0
- mqt/core/include/nlohmann/detail/meta/cpp_future.hpp +171 -0
- mqt/core/include/nlohmann/detail/meta/detected.hpp +70 -0
- mqt/core/include/nlohmann/detail/meta/identity_tag.hpp +21 -0
- mqt/core/include/nlohmann/detail/meta/is_sax.hpp +159 -0
- mqt/core/include/nlohmann/detail/meta/std_fs.hpp +29 -0
- mqt/core/include/nlohmann/detail/meta/type_traits.hpp +795 -0
- mqt/core/include/nlohmann/detail/meta/void_t.hpp +24 -0
- mqt/core/include/nlohmann/detail/output/binary_writer.hpp +1850 -0
- mqt/core/include/nlohmann/detail/output/output_adapters.hpp +147 -0
- mqt/core/include/nlohmann/detail/output/serializer.hpp +988 -0
- mqt/core/include/nlohmann/detail/string_concat.hpp +146 -0
- mqt/core/include/nlohmann/detail/string_escape.hpp +72 -0
- mqt/core/include/nlohmann/detail/string_utils.hpp +37 -0
- mqt/core/include/nlohmann/detail/value_t.hpp +118 -0
- mqt/core/include/nlohmann/json.hpp +5306 -0
- mqt/core/include/nlohmann/json_fwd.hpp +75 -0
- mqt/core/include/nlohmann/ordered_map.hpp +359 -0
- mqt/core/include/nlohmann/thirdparty/hedley/hedley.hpp +2045 -0
- mqt/core/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +158 -0
- mqt/core/include/qdmi/qdmi/client.h +990 -0
- mqt/core/include/qdmi/qdmi/constants.h +1139 -0
- mqt/core/include/qdmi/qdmi/device.h +602 -0
- mqt/core/include/qdmi/qdmi/types.h +78 -0
- mqt/core/include/spdlog/async.h +99 -0
- mqt/core/include/spdlog/async_logger-inl.h +84 -0
- mqt/core/include/spdlog/async_logger.h +74 -0
- mqt/core/include/spdlog/cfg/argv.h +40 -0
- mqt/core/include/spdlog/cfg/env.h +36 -0
- mqt/core/include/spdlog/cfg/helpers-inl.h +107 -0
- mqt/core/include/spdlog/cfg/helpers.h +29 -0
- mqt/core/include/spdlog/common-inl.h +68 -0
- mqt/core/include/spdlog/common.h +406 -0
- mqt/core/include/spdlog/details/backtracer-inl.h +63 -0
- mqt/core/include/spdlog/details/backtracer.h +45 -0
- mqt/core/include/spdlog/details/circular_q.h +115 -0
- mqt/core/include/spdlog/details/console_globals.h +28 -0
- mqt/core/include/spdlog/details/file_helper-inl.h +153 -0
- mqt/core/include/spdlog/details/file_helper.h +61 -0
- mqt/core/include/spdlog/details/fmt_helper.h +141 -0
- mqt/core/include/spdlog/details/log_msg-inl.h +44 -0
- mqt/core/include/spdlog/details/log_msg.h +40 -0
- mqt/core/include/spdlog/details/log_msg_buffer-inl.h +54 -0
- mqt/core/include/spdlog/details/log_msg_buffer.h +32 -0
- mqt/core/include/spdlog/details/mpmc_blocking_q.h +177 -0
- mqt/core/include/spdlog/details/null_mutex.h +35 -0
- mqt/core/include/spdlog/details/os-inl.h +606 -0
- mqt/core/include/spdlog/details/os.h +127 -0
- mqt/core/include/spdlog/details/periodic_worker-inl.h +26 -0
- mqt/core/include/spdlog/details/periodic_worker.h +58 -0
- mqt/core/include/spdlog/details/registry-inl.h +270 -0
- mqt/core/include/spdlog/details/registry.h +131 -0
- mqt/core/include/spdlog/details/synchronous_factory.h +22 -0
- mqt/core/include/spdlog/details/tcp_client-windows.h +135 -0
- mqt/core/include/spdlog/details/tcp_client.h +127 -0
- mqt/core/include/spdlog/details/thread_pool-inl.h +126 -0
- mqt/core/include/spdlog/details/thread_pool.h +117 -0
- mqt/core/include/spdlog/details/udp_client-windows.h +98 -0
- mqt/core/include/spdlog/details/udp_client.h +81 -0
- mqt/core/include/spdlog/details/windows_include.h +11 -0
- mqt/core/include/spdlog/fmt/bin_to_hex.h +224 -0
- mqt/core/include/spdlog/fmt/bundled/args.h +220 -0
- mqt/core/include/spdlog/fmt/bundled/base.h +2989 -0
- mqt/core/include/spdlog/fmt/bundled/chrono.h +2330 -0
- mqt/core/include/spdlog/fmt/bundled/color.h +637 -0
- mqt/core/include/spdlog/fmt/bundled/compile.h +539 -0
- mqt/core/include/spdlog/fmt/bundled/core.h +5 -0
- mqt/core/include/spdlog/fmt/bundled/fmt.license.rst +27 -0
- mqt/core/include/spdlog/fmt/bundled/format-inl.h +1948 -0
- mqt/core/include/spdlog/fmt/bundled/format.h +4244 -0
- mqt/core/include/spdlog/fmt/bundled/os.h +427 -0
- mqt/core/include/spdlog/fmt/bundled/ostream.h +167 -0
- mqt/core/include/spdlog/fmt/bundled/printf.h +633 -0
- mqt/core/include/spdlog/fmt/bundled/ranges.h +850 -0
- mqt/core/include/spdlog/fmt/bundled/std.h +728 -0
- mqt/core/include/spdlog/fmt/bundled/xchar.h +369 -0
- mqt/core/include/spdlog/fmt/chrono.h +23 -0
- mqt/core/include/spdlog/fmt/compile.h +23 -0
- mqt/core/include/spdlog/fmt/fmt.h +30 -0
- mqt/core/include/spdlog/fmt/ostr.h +23 -0
- mqt/core/include/spdlog/fmt/ranges.h +23 -0
- mqt/core/include/spdlog/fmt/std.h +24 -0
- mqt/core/include/spdlog/fmt/xchar.h +23 -0
- mqt/core/include/spdlog/formatter.h +17 -0
- mqt/core/include/spdlog/fwd.h +18 -0
- mqt/core/include/spdlog/logger-inl.h +198 -0
- mqt/core/include/spdlog/logger.h +379 -0
- mqt/core/include/spdlog/mdc.h +52 -0
- mqt/core/include/spdlog/pattern_formatter-inl.h +1340 -0
- mqt/core/include/spdlog/pattern_formatter.h +118 -0
- mqt/core/include/spdlog/sinks/android_sink.h +137 -0
- mqt/core/include/spdlog/sinks/ansicolor_sink-inl.h +142 -0
- mqt/core/include/spdlog/sinks/ansicolor_sink.h +116 -0
- mqt/core/include/spdlog/sinks/base_sink-inl.h +59 -0
- mqt/core/include/spdlog/sinks/base_sink.h +51 -0
- mqt/core/include/spdlog/sinks/basic_file_sink-inl.h +48 -0
- mqt/core/include/spdlog/sinks/basic_file_sink.h +66 -0
- mqt/core/include/spdlog/sinks/callback_sink.h +56 -0
- mqt/core/include/spdlog/sinks/daily_file_sink.h +254 -0
- mqt/core/include/spdlog/sinks/dist_sink.h +81 -0
- mqt/core/include/spdlog/sinks/dup_filter_sink.h +91 -0
- mqt/core/include/spdlog/sinks/hourly_file_sink.h +193 -0
- mqt/core/include/spdlog/sinks/kafka_sink.h +119 -0
- mqt/core/include/spdlog/sinks/mongo_sink.h +108 -0
- mqt/core/include/spdlog/sinks/msvc_sink.h +68 -0
- mqt/core/include/spdlog/sinks/null_sink.h +41 -0
- mqt/core/include/spdlog/sinks/ostream_sink.h +43 -0
- mqt/core/include/spdlog/sinks/qt_sinks.h +304 -0
- mqt/core/include/spdlog/sinks/ringbuffer_sink.h +67 -0
- mqt/core/include/spdlog/sinks/rotating_file_sink-inl.h +179 -0
- mqt/core/include/spdlog/sinks/rotating_file_sink.h +93 -0
- mqt/core/include/spdlog/sinks/sink-inl.h +22 -0
- mqt/core/include/spdlog/sinks/sink.h +34 -0
- mqt/core/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
- mqt/core/include/spdlog/sinks/stdout_color_sinks.h +49 -0
- mqt/core/include/spdlog/sinks/stdout_sinks-inl.h +127 -0
- mqt/core/include/spdlog/sinks/stdout_sinks.h +84 -0
- mqt/core/include/spdlog/sinks/syslog_sink.h +104 -0
- mqt/core/include/spdlog/sinks/systemd_sink.h +121 -0
- mqt/core/include/spdlog/sinks/tcp_sink.h +75 -0
- mqt/core/include/spdlog/sinks/udp_sink.h +69 -0
- mqt/core/include/spdlog/sinks/win_eventlog_sink.h +260 -0
- mqt/core/include/spdlog/sinks/wincolor_sink-inl.h +172 -0
- mqt/core/include/spdlog/sinks/wincolor_sink.h +82 -0
- mqt/core/include/spdlog/spdlog-inl.h +96 -0
- mqt/core/include/spdlog/spdlog.h +357 -0
- mqt/core/include/spdlog/stopwatch.h +66 -0
- mqt/core/include/spdlog/tweakme.h +148 -0
- mqt/core/include/spdlog/version.h +11 -0
- mqt/core/ir/__init__.pyi +2078 -0
- mqt/core/ir/operations.pyi +1011 -0
- mqt/core/ir/registers.pyi +91 -0
- mqt/core/ir/symbolic.pyi +177 -0
- mqt/core/ir.cp314t-win_amd64.pyd +0 -0
- mqt/core/lib/mqt-core-algorithms.lib +0 -0
- mqt/core/lib/mqt-core-circuit-optimizer.lib +0 -0
- mqt/core/lib/mqt-core-dd.lib +0 -0
- mqt/core/lib/mqt-core-ds.lib +0 -0
- mqt/core/lib/mqt-core-fomac.lib +0 -0
- mqt/core/lib/mqt-core-ir.lib +0 -0
- mqt/core/lib/mqt-core-na-fomac.lib +0 -0
- mqt/core/lib/mqt-core-na.lib +0 -0
- mqt/core/lib/mqt-core-qasm.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-driver.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-na-device-gen.lib +0 -0
- mqt/core/lib/mqt-core-qdmi-na-device.lib +0 -0
- mqt/core/lib/mqt-core-zx.lib +0 -0
- mqt/core/lib/pkgconfig/spdlog.pc +13 -0
- mqt/core/lib/spdlog.lib +0 -0
- mqt/core/na/__init__.py +12 -0
- mqt/core/na/fomac.cp314t-win_amd64.pyd +0 -0
- mqt/core/na/fomac.pyi +117 -0
- mqt/core/nlohmann_json.natvis +278 -0
- mqt/core/plugins/__init__.py +9 -0
- mqt/core/plugins/qiskit/__init__.py +19 -0
- mqt/core/plugins/qiskit/mqt_to_qiskit.py +420 -0
- mqt/core/plugins/qiskit/qiskit_to_mqt.py +562 -0
- mqt/core/py.typed +2 -0
- mqt/core/share/cmake/mqt-core/AddMQTPythonBinding.cmake +55 -0
- mqt/core/share/cmake/mqt-core/Cache.cmake +33 -0
- mqt/core/share/cmake/mqt-core/FindGMP.cmake +103 -0
- mqt/core/share/cmake/mqt-core/PackageAddTest.cmake +46 -0
- mqt/core/share/cmake/mqt-core/PreventInSourceBuilds.cmake +25 -0
- mqt/core/share/cmake/mqt-core/StandardProjectSettings.cmake +87 -0
- mqt/core/share/cmake/mqt-core/mqt-core-config-version.cmake +85 -0
- mqt/core/share/cmake/mqt-core/mqt-core-config.cmake +52 -0
- mqt/core/share/cmake/mqt-core/mqt-core-targets-release.cmake +141 -0
- mqt/core/share/cmake/mqt-core/mqt-core-targets.cmake +445 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake +15 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake +20 -0
- mqt/core/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake +110 -0
- mqt/core/share/cmake/qdmi/Cache.cmake +44 -0
- mqt/core/share/cmake/qdmi/PrefixHandling.cmake +78 -0
- mqt/core/share/cmake/qdmi/prefix_defs.txt +26 -0
- mqt/core/share/cmake/qdmi/qdmi-config-version.cmake +85 -0
- mqt/core/share/cmake/qdmi/qdmi-config.cmake +42 -0
- mqt/core/share/cmake/qdmi/qdmi-targets.cmake +129 -0
- mqt/core/share/cmake/spdlog/spdlogConfig.cmake +44 -0
- mqt/core/share/cmake/spdlog/spdlogConfigTargets-release.cmake +19 -0
- mqt/core/share/cmake/spdlog/spdlogConfigTargets.cmake +121 -0
- mqt/core/share/cmake/spdlog/spdlogConfigVersion.cmake +65 -0
- mqt/core/share/pkgconfig/nlohmann_json.pc +7 -0
- mqt_core-3.3.2.dist-info/DELVEWHEEL +2 -0
- mqt_core-3.3.2.dist-info/METADATA +210 -0
- mqt_core-3.3.2.dist-info/RECORD +537 -0
- mqt_core-3.3.2.dist-info/WHEEL +5 -0
- mqt_core-3.3.2.dist-info/entry_points.txt +4 -0
- mqt_core-3.3.2.dist-info/licenses/LICENSE.md +22 -0
- mqt_core.libs/msvcp140.dll +0 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
|
|
2
|
+
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#ifndef SPDLOG_HEADER_ONLY
|
|
7
|
+
#include <spdlog/details/file_helper.h>
|
|
8
|
+
#endif
|
|
9
|
+
|
|
10
|
+
#include <spdlog/common.h>
|
|
11
|
+
#include <spdlog/details/os.h>
|
|
12
|
+
|
|
13
|
+
#include <cerrno>
|
|
14
|
+
#include <chrono>
|
|
15
|
+
#include <cstdio>
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <thread>
|
|
18
|
+
#include <tuple>
|
|
19
|
+
|
|
20
|
+
namespace spdlog {
|
|
21
|
+
namespace details {
|
|
22
|
+
|
|
23
|
+
SPDLOG_INLINE file_helper::file_helper(const file_event_handlers &event_handlers)
|
|
24
|
+
: event_handlers_(event_handlers) {}
|
|
25
|
+
|
|
26
|
+
SPDLOG_INLINE file_helper::~file_helper() { close(); }
|
|
27
|
+
|
|
28
|
+
SPDLOG_INLINE void file_helper::open(const filename_t &fname, bool truncate) {
|
|
29
|
+
close();
|
|
30
|
+
filename_ = fname;
|
|
31
|
+
|
|
32
|
+
auto *mode = SPDLOG_FILENAME_T("ab");
|
|
33
|
+
auto *trunc_mode = SPDLOG_FILENAME_T("wb");
|
|
34
|
+
|
|
35
|
+
if (event_handlers_.before_open) {
|
|
36
|
+
event_handlers_.before_open(filename_);
|
|
37
|
+
}
|
|
38
|
+
for (int tries = 0; tries < open_tries_; ++tries) {
|
|
39
|
+
// create containing folder if not exists already.
|
|
40
|
+
os::create_dir(os::dir_name(fname));
|
|
41
|
+
if (truncate) {
|
|
42
|
+
// Truncate by opening-and-closing a tmp file in "wb" mode, always
|
|
43
|
+
// opening the actual log-we-write-to in "ab" mode, since that
|
|
44
|
+
// interacts more politely with eternal processes that might
|
|
45
|
+
// rotate/truncate the file underneath us.
|
|
46
|
+
std::FILE *tmp;
|
|
47
|
+
if (os::fopen_s(&tmp, fname, trunc_mode)) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
std::fclose(tmp);
|
|
51
|
+
}
|
|
52
|
+
if (!os::fopen_s(&fd_, fname, mode)) {
|
|
53
|
+
if (event_handlers_.after_open) {
|
|
54
|
+
event_handlers_.after_open(filename_, fd_);
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
details::os::sleep_for_millis(open_interval_);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
throw_spdlog_ex("Failed opening file " + os::filename_to_str(filename_) + " for writing",
|
|
63
|
+
errno);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
SPDLOG_INLINE void file_helper::reopen(bool truncate) {
|
|
67
|
+
if (filename_.empty()) {
|
|
68
|
+
throw_spdlog_ex("Failed re opening file - was not opened before");
|
|
69
|
+
}
|
|
70
|
+
this->open(filename_, truncate);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
SPDLOG_INLINE void file_helper::flush() {
|
|
74
|
+
if (std::fflush(fd_) != 0) {
|
|
75
|
+
throw_spdlog_ex("Failed flush to file " + os::filename_to_str(filename_), errno);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
SPDLOG_INLINE void file_helper::sync() {
|
|
80
|
+
if (!os::fsync(fd_)) {
|
|
81
|
+
throw_spdlog_ex("Failed to fsync file " + os::filename_to_str(filename_), errno);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
SPDLOG_INLINE void file_helper::close() {
|
|
86
|
+
if (fd_ != nullptr) {
|
|
87
|
+
if (event_handlers_.before_close) {
|
|
88
|
+
event_handlers_.before_close(filename_, fd_);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
std::fclose(fd_);
|
|
92
|
+
fd_ = nullptr;
|
|
93
|
+
|
|
94
|
+
if (event_handlers_.after_close) {
|
|
95
|
+
event_handlers_.after_close(filename_);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
SPDLOG_INLINE void file_helper::write(const memory_buf_t &buf) {
|
|
101
|
+
if (fd_ == nullptr) return;
|
|
102
|
+
size_t msg_size = buf.size();
|
|
103
|
+
auto data = buf.data();
|
|
104
|
+
|
|
105
|
+
if (!details::os::fwrite_bytes(data, msg_size, fd_)) {
|
|
106
|
+
throw_spdlog_ex("Failed writing to file " + os::filename_to_str(filename_), errno);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
SPDLOG_INLINE size_t file_helper::size() const {
|
|
111
|
+
if (fd_ == nullptr) {
|
|
112
|
+
throw_spdlog_ex("Cannot use size() on closed file " + os::filename_to_str(filename_));
|
|
113
|
+
}
|
|
114
|
+
return os::filesize(fd_);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
SPDLOG_INLINE const filename_t &file_helper::filename() const { return filename_; }
|
|
118
|
+
|
|
119
|
+
//
|
|
120
|
+
// return file path and its extension:
|
|
121
|
+
//
|
|
122
|
+
// "mylog.txt" => ("mylog", ".txt")
|
|
123
|
+
// "mylog" => ("mylog", "")
|
|
124
|
+
// "mylog." => ("mylog.", "")
|
|
125
|
+
// "/dir1/dir2/mylog.txt" => ("/dir1/dir2/mylog", ".txt")
|
|
126
|
+
//
|
|
127
|
+
// the starting dot in filenames is ignored (hidden files):
|
|
128
|
+
//
|
|
129
|
+
// ".mylog" => (".mylog". "")
|
|
130
|
+
// "my_folder/.mylog" => ("my_folder/.mylog", "")
|
|
131
|
+
// "my_folder/.mylog.txt" => ("my_folder/.mylog", ".txt")
|
|
132
|
+
SPDLOG_INLINE std::tuple<filename_t, filename_t> file_helper::split_by_extension(
|
|
133
|
+
const filename_t &fname) {
|
|
134
|
+
auto ext_index = fname.rfind('.');
|
|
135
|
+
|
|
136
|
+
// no valid extension found - return whole path and empty string as
|
|
137
|
+
// extension
|
|
138
|
+
if (ext_index == filename_t::npos || ext_index == 0 || ext_index == fname.size() - 1) {
|
|
139
|
+
return std::make_tuple(fname, filename_t());
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// treat cases like "/etc/rc.d/somelogfile or "/abc/.hiddenfile"
|
|
143
|
+
auto folder_index = fname.find_last_of(details::os::folder_seps_filename);
|
|
144
|
+
if (folder_index != filename_t::npos && folder_index >= ext_index - 1) {
|
|
145
|
+
return std::make_tuple(fname, filename_t());
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// finally - return a valid base and extension tuple
|
|
149
|
+
return std::make_tuple(fname.substr(0, ext_index), fname.substr(ext_index));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
} // namespace details
|
|
153
|
+
} // namespace spdlog
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
|
|
2
|
+
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include <spdlog/common.h>
|
|
7
|
+
#include <tuple>
|
|
8
|
+
|
|
9
|
+
namespace spdlog {
|
|
10
|
+
namespace details {
|
|
11
|
+
|
|
12
|
+
// Helper class for file sinks.
|
|
13
|
+
// When failing to open a file, retry several times(5) with a delay interval(10 ms).
|
|
14
|
+
// Throw spdlog_ex exception on errors.
|
|
15
|
+
|
|
16
|
+
class SPDLOG_API file_helper {
|
|
17
|
+
public:
|
|
18
|
+
file_helper() = default;
|
|
19
|
+
explicit file_helper(const file_event_handlers &event_handlers);
|
|
20
|
+
|
|
21
|
+
file_helper(const file_helper &) = delete;
|
|
22
|
+
file_helper &operator=(const file_helper &) = delete;
|
|
23
|
+
~file_helper();
|
|
24
|
+
|
|
25
|
+
void open(const filename_t &fname, bool truncate = false);
|
|
26
|
+
void reopen(bool truncate);
|
|
27
|
+
void flush();
|
|
28
|
+
void sync();
|
|
29
|
+
void close();
|
|
30
|
+
void write(const memory_buf_t &buf);
|
|
31
|
+
size_t size() const;
|
|
32
|
+
const filename_t &filename() const;
|
|
33
|
+
|
|
34
|
+
//
|
|
35
|
+
// return file path and its extension:
|
|
36
|
+
//
|
|
37
|
+
// "mylog.txt" => ("mylog", ".txt")
|
|
38
|
+
// "mylog" => ("mylog", "")
|
|
39
|
+
// "mylog." => ("mylog.", "")
|
|
40
|
+
// "/dir1/dir2/mylog.txt" => ("/dir1/dir2/mylog", ".txt")
|
|
41
|
+
//
|
|
42
|
+
// the starting dot in filenames is ignored (hidden files):
|
|
43
|
+
//
|
|
44
|
+
// ".mylog" => (".mylog". "")
|
|
45
|
+
// "my_folder/.mylog" => ("my_folder/.mylog", "")
|
|
46
|
+
// "my_folder/.mylog.txt" => ("my_folder/.mylog", ".txt")
|
|
47
|
+
static std::tuple<filename_t, filename_t> split_by_extension(const filename_t &fname);
|
|
48
|
+
|
|
49
|
+
private:
|
|
50
|
+
const int open_tries_ = 5;
|
|
51
|
+
const unsigned int open_interval_ = 10;
|
|
52
|
+
std::FILE *fd_{nullptr};
|
|
53
|
+
filename_t filename_;
|
|
54
|
+
file_event_handlers event_handlers_;
|
|
55
|
+
};
|
|
56
|
+
} // namespace details
|
|
57
|
+
} // namespace spdlog
|
|
58
|
+
|
|
59
|
+
#ifdef SPDLOG_HEADER_ONLY
|
|
60
|
+
#include "file_helper-inl.h"
|
|
61
|
+
#endif
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
|
|
2
|
+
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
3
|
+
#pragma once
|
|
4
|
+
|
|
5
|
+
#include <chrono>
|
|
6
|
+
#include <iterator>
|
|
7
|
+
#include <spdlog/common.h>
|
|
8
|
+
#include <spdlog/fmt/fmt.h>
|
|
9
|
+
#include <type_traits>
|
|
10
|
+
|
|
11
|
+
#ifdef SPDLOG_USE_STD_FORMAT
|
|
12
|
+
#include <charconv>
|
|
13
|
+
#include <limits>
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
// Some fmt helpers to efficiently format and pad ints and strings
|
|
17
|
+
namespace spdlog {
|
|
18
|
+
namespace details {
|
|
19
|
+
namespace fmt_helper {
|
|
20
|
+
|
|
21
|
+
inline void append_string_view(spdlog::string_view_t view, memory_buf_t &dest) {
|
|
22
|
+
auto *buf_ptr = view.data();
|
|
23
|
+
dest.append(buf_ptr, buf_ptr + view.size());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
#ifdef SPDLOG_USE_STD_FORMAT
|
|
27
|
+
template <typename T>
|
|
28
|
+
inline void append_int(T n, memory_buf_t &dest) {
|
|
29
|
+
// Buffer should be large enough to hold all digits (digits10 + 1) and a sign
|
|
30
|
+
SPDLOG_CONSTEXPR const auto BUF_SIZE = std::numeric_limits<T>::digits10 + 2;
|
|
31
|
+
char buf[BUF_SIZE];
|
|
32
|
+
|
|
33
|
+
auto [ptr, ec] = std::to_chars(buf, buf + BUF_SIZE, n, 10);
|
|
34
|
+
if (ec == std::errc()) {
|
|
35
|
+
dest.append(buf, ptr);
|
|
36
|
+
} else {
|
|
37
|
+
throw_spdlog_ex("Failed to format int", static_cast<int>(ec));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
#else
|
|
41
|
+
template <typename T>
|
|
42
|
+
inline void append_int(T n, memory_buf_t &dest) {
|
|
43
|
+
fmt::format_int i(n);
|
|
44
|
+
dest.append(i.data(), i.data() + i.size());
|
|
45
|
+
}
|
|
46
|
+
#endif
|
|
47
|
+
|
|
48
|
+
template <typename T>
|
|
49
|
+
SPDLOG_CONSTEXPR_FUNC unsigned int count_digits_fallback(T n) {
|
|
50
|
+
// taken from fmt: https://github.com/fmtlib/fmt/blob/8.0.1/include/fmt/format.h#L899-L912
|
|
51
|
+
unsigned int count = 1;
|
|
52
|
+
for (;;) {
|
|
53
|
+
// Integer division is slow so do it for a group of four digits instead
|
|
54
|
+
// of for every digit. The idea comes from the talk by Alexandrescu
|
|
55
|
+
// "Three Optimization Tips for C++". See speed-test for a comparison.
|
|
56
|
+
if (n < 10) return count;
|
|
57
|
+
if (n < 100) return count + 1;
|
|
58
|
+
if (n < 1000) return count + 2;
|
|
59
|
+
if (n < 10000) return count + 3;
|
|
60
|
+
n /= 10000u;
|
|
61
|
+
count += 4;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
template <typename T>
|
|
66
|
+
inline unsigned int count_digits(T n) {
|
|
67
|
+
using count_type =
|
|
68
|
+
typename std::conditional<(sizeof(T) > sizeof(uint32_t)), uint64_t, uint32_t>::type;
|
|
69
|
+
#ifdef SPDLOG_USE_STD_FORMAT
|
|
70
|
+
return count_digits_fallback(static_cast<count_type>(n));
|
|
71
|
+
#else
|
|
72
|
+
return static_cast<unsigned int>(fmt::
|
|
73
|
+
// fmt 7.0.0 renamed the internal namespace to detail.
|
|
74
|
+
// See: https://github.com/fmtlib/fmt/issues/1538
|
|
75
|
+
#if FMT_VERSION < 70000
|
|
76
|
+
internal
|
|
77
|
+
#else
|
|
78
|
+
detail
|
|
79
|
+
#endif
|
|
80
|
+
::count_digits(static_cast<count_type>(n)));
|
|
81
|
+
#endif
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
inline void pad2(int n, memory_buf_t &dest) {
|
|
85
|
+
if (n >= 0 && n < 100) // 0-99
|
|
86
|
+
{
|
|
87
|
+
dest.push_back(static_cast<char>('0' + n / 10));
|
|
88
|
+
dest.push_back(static_cast<char>('0' + n % 10));
|
|
89
|
+
} else // unlikely, but just in case, let fmt deal with it
|
|
90
|
+
{
|
|
91
|
+
fmt_lib::format_to(std::back_inserter(dest), SPDLOG_FMT_STRING("{:02}"), n);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
template <typename T>
|
|
96
|
+
inline void pad_uint(T n, unsigned int width, memory_buf_t &dest) {
|
|
97
|
+
static_assert(std::is_unsigned<T>::value, "pad_uint must get unsigned T");
|
|
98
|
+
for (auto digits = count_digits(n); digits < width; digits++) {
|
|
99
|
+
dest.push_back('0');
|
|
100
|
+
}
|
|
101
|
+
append_int(n, dest);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
template <typename T>
|
|
105
|
+
inline void pad3(T n, memory_buf_t &dest) {
|
|
106
|
+
static_assert(std::is_unsigned<T>::value, "pad3 must get unsigned T");
|
|
107
|
+
if (n < 1000) {
|
|
108
|
+
dest.push_back(static_cast<char>(n / 100 + '0'));
|
|
109
|
+
n = n % 100;
|
|
110
|
+
dest.push_back(static_cast<char>((n / 10) + '0'));
|
|
111
|
+
dest.push_back(static_cast<char>((n % 10) + '0'));
|
|
112
|
+
} else {
|
|
113
|
+
append_int(n, dest);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
template <typename T>
|
|
118
|
+
inline void pad6(T n, memory_buf_t &dest) {
|
|
119
|
+
pad_uint(n, 6, dest);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
template <typename T>
|
|
123
|
+
inline void pad9(T n, memory_buf_t &dest) {
|
|
124
|
+
pad_uint(n, 9, dest);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// return fraction of a second of the given time_point.
|
|
128
|
+
// e.g.
|
|
129
|
+
// fraction<std::milliseconds>(tp) -> will return the millis part of the second
|
|
130
|
+
template <typename ToDuration>
|
|
131
|
+
inline ToDuration time_fraction(log_clock::time_point tp) {
|
|
132
|
+
using std::chrono::duration_cast;
|
|
133
|
+
using std::chrono::seconds;
|
|
134
|
+
auto duration = tp.time_since_epoch();
|
|
135
|
+
auto secs = duration_cast<seconds>(duration);
|
|
136
|
+
return duration_cast<ToDuration>(duration) - duration_cast<ToDuration>(secs);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
} // namespace fmt_helper
|
|
140
|
+
} // namespace details
|
|
141
|
+
} // namespace spdlog
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
|
|
2
|
+
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#ifndef SPDLOG_HEADER_ONLY
|
|
7
|
+
#include <spdlog/details/log_msg.h>
|
|
8
|
+
#endif
|
|
9
|
+
|
|
10
|
+
#include <spdlog/details/os.h>
|
|
11
|
+
|
|
12
|
+
namespace spdlog {
|
|
13
|
+
namespace details {
|
|
14
|
+
|
|
15
|
+
SPDLOG_INLINE log_msg::log_msg(spdlog::log_clock::time_point log_time,
|
|
16
|
+
spdlog::source_loc loc,
|
|
17
|
+
string_view_t a_logger_name,
|
|
18
|
+
spdlog::level::level_enum lvl,
|
|
19
|
+
spdlog::string_view_t msg)
|
|
20
|
+
: logger_name(a_logger_name),
|
|
21
|
+
level(lvl),
|
|
22
|
+
time(log_time)
|
|
23
|
+
#ifndef SPDLOG_NO_THREAD_ID
|
|
24
|
+
,
|
|
25
|
+
thread_id(os::thread_id())
|
|
26
|
+
#endif
|
|
27
|
+
,
|
|
28
|
+
source(loc),
|
|
29
|
+
payload(msg) {
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
SPDLOG_INLINE log_msg::log_msg(spdlog::source_loc loc,
|
|
33
|
+
string_view_t a_logger_name,
|
|
34
|
+
spdlog::level::level_enum lvl,
|
|
35
|
+
spdlog::string_view_t msg)
|
|
36
|
+
: log_msg(os::now(), loc, a_logger_name, lvl, msg) {}
|
|
37
|
+
|
|
38
|
+
SPDLOG_INLINE log_msg::log_msg(string_view_t a_logger_name,
|
|
39
|
+
spdlog::level::level_enum lvl,
|
|
40
|
+
spdlog::string_view_t msg)
|
|
41
|
+
: log_msg(os::now(), source_loc{}, a_logger_name, lvl, msg) {}
|
|
42
|
+
|
|
43
|
+
} // namespace details
|
|
44
|
+
} // namespace spdlog
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
|
|
2
|
+
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include <spdlog/common.h>
|
|
7
|
+
#include <string>
|
|
8
|
+
|
|
9
|
+
namespace spdlog {
|
|
10
|
+
namespace details {
|
|
11
|
+
struct SPDLOG_API log_msg {
|
|
12
|
+
log_msg() = default;
|
|
13
|
+
log_msg(log_clock::time_point log_time,
|
|
14
|
+
source_loc loc,
|
|
15
|
+
string_view_t logger_name,
|
|
16
|
+
level::level_enum lvl,
|
|
17
|
+
string_view_t msg);
|
|
18
|
+
log_msg(source_loc loc, string_view_t logger_name, level::level_enum lvl, string_view_t msg);
|
|
19
|
+
log_msg(string_view_t logger_name, level::level_enum lvl, string_view_t msg);
|
|
20
|
+
log_msg(const log_msg &other) = default;
|
|
21
|
+
log_msg &operator=(const log_msg &other) = default;
|
|
22
|
+
|
|
23
|
+
string_view_t logger_name;
|
|
24
|
+
level::level_enum level{level::off};
|
|
25
|
+
log_clock::time_point time;
|
|
26
|
+
size_t thread_id{0};
|
|
27
|
+
|
|
28
|
+
// wrapping the formatted text with color (updated by pattern_formatter).
|
|
29
|
+
mutable size_t color_range_start{0};
|
|
30
|
+
mutable size_t color_range_end{0};
|
|
31
|
+
|
|
32
|
+
source_loc source;
|
|
33
|
+
string_view_t payload;
|
|
34
|
+
};
|
|
35
|
+
} // namespace details
|
|
36
|
+
} // namespace spdlog
|
|
37
|
+
|
|
38
|
+
#ifdef SPDLOG_HEADER_ONLY
|
|
39
|
+
#include "log_msg-inl.h"
|
|
40
|
+
#endif
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
|
|
2
|
+
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#ifndef SPDLOG_HEADER_ONLY
|
|
7
|
+
#include <spdlog/details/log_msg_buffer.h>
|
|
8
|
+
#endif
|
|
9
|
+
|
|
10
|
+
namespace spdlog {
|
|
11
|
+
namespace details {
|
|
12
|
+
|
|
13
|
+
SPDLOG_INLINE log_msg_buffer::log_msg_buffer(const log_msg &orig_msg)
|
|
14
|
+
: log_msg{orig_msg} {
|
|
15
|
+
buffer.append(logger_name.begin(), logger_name.end());
|
|
16
|
+
buffer.append(payload.begin(), payload.end());
|
|
17
|
+
update_string_views();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
SPDLOG_INLINE log_msg_buffer::log_msg_buffer(const log_msg_buffer &other)
|
|
21
|
+
: log_msg{other} {
|
|
22
|
+
buffer.append(logger_name.begin(), logger_name.end());
|
|
23
|
+
buffer.append(payload.begin(), payload.end());
|
|
24
|
+
update_string_views();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
SPDLOG_INLINE log_msg_buffer::log_msg_buffer(log_msg_buffer &&other) SPDLOG_NOEXCEPT
|
|
28
|
+
: log_msg{other},
|
|
29
|
+
buffer{std::move(other.buffer)} {
|
|
30
|
+
update_string_views();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
SPDLOG_INLINE log_msg_buffer &log_msg_buffer::operator=(const log_msg_buffer &other) {
|
|
34
|
+
log_msg::operator=(other);
|
|
35
|
+
buffer.clear();
|
|
36
|
+
buffer.append(other.buffer.data(), other.buffer.data() + other.buffer.size());
|
|
37
|
+
update_string_views();
|
|
38
|
+
return *this;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
SPDLOG_INLINE log_msg_buffer &log_msg_buffer::operator=(log_msg_buffer &&other) SPDLOG_NOEXCEPT {
|
|
42
|
+
log_msg::operator=(other);
|
|
43
|
+
buffer = std::move(other.buffer);
|
|
44
|
+
update_string_views();
|
|
45
|
+
return *this;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
SPDLOG_INLINE void log_msg_buffer::update_string_views() {
|
|
49
|
+
logger_name = string_view_t{buffer.data(), logger_name.size()};
|
|
50
|
+
payload = string_view_t{buffer.data() + logger_name.size(), payload.size()};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
} // namespace details
|
|
54
|
+
} // namespace spdlog
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
|
|
2
|
+
// Distributed under the MIT License (http://opensource.org/licenses/MIT)
|
|
3
|
+
|
|
4
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include <spdlog/details/log_msg.h>
|
|
7
|
+
|
|
8
|
+
namespace spdlog {
|
|
9
|
+
namespace details {
|
|
10
|
+
|
|
11
|
+
// Extend log_msg with internal buffer to store its payload.
|
|
12
|
+
// This is needed since log_msg holds string_views that points to stack data.
|
|
13
|
+
|
|
14
|
+
class SPDLOG_API log_msg_buffer : public log_msg {
|
|
15
|
+
memory_buf_t buffer;
|
|
16
|
+
void update_string_views();
|
|
17
|
+
|
|
18
|
+
public:
|
|
19
|
+
log_msg_buffer() = default;
|
|
20
|
+
explicit log_msg_buffer(const log_msg &orig_msg);
|
|
21
|
+
log_msg_buffer(const log_msg_buffer &other);
|
|
22
|
+
log_msg_buffer(log_msg_buffer &&other) SPDLOG_NOEXCEPT;
|
|
23
|
+
log_msg_buffer &operator=(const log_msg_buffer &other);
|
|
24
|
+
log_msg_buffer &operator=(log_msg_buffer &&other) SPDLOG_NOEXCEPT;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
} // namespace details
|
|
28
|
+
} // namespace spdlog
|
|
29
|
+
|
|
30
|
+
#ifdef SPDLOG_HEADER_ONLY
|
|
31
|
+
#include "log_msg_buffer-inl.h"
|
|
32
|
+
#endif
|