mirror of
https://github.com/saymrwulf/risc0-curve25519-dalek-source.git
synced 2026-09-04 20:03:40 +00:00
Each backend can now be selected by an individual feature: - `u32_backend` for `backend::u32`; - `u64_backend` for `backend::u64`; - `avx2_backend` for `backend::avx2`; The `u64_backend` is selected by default, since most people use X64 and we have no way to select based on target (see discussion in #126). However, these changes mean that it is possible to select the backend explicitly, and if we had the ability to select target-default features, we could do so easily.
32 lines
1.1 KiB
Rust
32 lines
1.1 KiB
Rust
// -*- mode: rust; -*-
|
|
//
|
|
// This file is part of curve25519-dalek.
|
|
// Copyright (c) 2016-2017 Isis Lovecruft, Henry de Valence
|
|
// See LICENSE for licensing information.
|
|
//
|
|
// Authors:
|
|
// - Isis Agora Lovecruft <isis@patternsinthevoid.net>
|
|
// - Henry de Valence <hdevalence@hdevalence.ca>
|
|
|
|
//! Pluggable implementations for different architectures.
|
|
//!
|
|
//! The naming of the `u32` and `u64` modules is somewhat unfortunate,
|
|
//! since these are also the names of primitive types. Since types have
|
|
//! a different namespace than modules, this isn't a problem to the
|
|
//! compiler, but it could cause confusion.
|
|
//!
|
|
//! However, it's unlikely that the names of those modules would be
|
|
//! brought into scope directly, instead of used as
|
|
//! `backend::u32::field` or similar. Unfortunately we can't use
|
|
//! `32bit` since identifiers can't start with letters, and the backends
|
|
//! do use `u32`/`u64`, so this seems like a least-bad option.
|
|
|
|
#[cfg(feature = "u32_backend")]
|
|
pub mod u32;
|
|
|
|
#[cfg(feature = "u64_backend")]
|
|
pub mod u64;
|
|
|
|
#[cfg(all(feature = "avx2_backend", feature = "yolocrypto", target_feature = "avx2"))]
|
|
pub mod avx2;
|
|
|