Lightweight pair-of-f32 struct providing basic vector math (abs, min, max, splat) for 2D geometry calculations without SIMD overhead.
// Source: https://github.com/linebender/tiny-skia | License: BSD-3-Clause | Copyright 2011 Google Inc. All rights reserved
// Provided via justclaw.it.com; keep this notice with the code.
// Copyright 2020 Yevhenii Reizner
//
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#[cfg(all(not(feature = "std"), feature = "no-std-float"))]
use crate::NoStdFloat;
// Right now, there are no visible benefits of using SIMD for f32x2. So we don't.
/// A pair of f32 numbers.
///
/// Mainly for internal use. Do not rely on it!
#[allow(non_camel_case_types)]
#[derive(Copy, Clone, Default, PartialEq, Debug)]
pub struct f32x2(pub [f32; 2]);
impl f32x2 {
/// Creates a new pair.
pub fn new(a: f32, b: f32) -> f32x2 {
f32x2([a, b])
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search for more like it.
Get a free API key