Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Impressum primitives.rs

  Sprache: Rust
 

//! Primitives types that can cross the FFI boundary.
use crate::ast;

/// 8, 16, 32, and 64-bit signed and unsigned integers.
#[derive(Copy, Clone, Debug)]
#[allow(clippy::exhaustive_enums)] // there are only these
pub enum IntType {
    I8,
    I16,
    I32,
    I64,
    U8,
    U16,
    U32,
    U64,
}

/// Platform-dependent signed and unsigned size types.
#[derive(Copy, Clone, Debug)]
#[allow(clippy::exhaustive_enums)] // there are only these
pub enum IntSizeType {
    Isize,
    Usize,
}

/// 128-bit signed and unsigned integers.
#[derive(Copy, Clone, Debug)]
#[allow(clippy::exhaustive_enums)] // there are only these
pub enum Int128Type {
    I128,
    U128,
}

/// 32 and 64-bit floating point numbers.
#[derive(Copy, Clone, Debug)]
#[allow(clippy::exhaustive_enums)] // there are only these
pub enum FloatType {
    F32,
    F64,
}

/// All primitive types.
#[derive(Copy, Clone, Debug)]
#[allow(clippy::exhaustive_enums)] // there are only these
pub enum PrimitiveType {
    Bool,
    Char,
    /// a primitive byte that is not meant to be interpreted numerically
    /// in languages that don't have fine-grained integer types
    Byte,
    Int(IntType),
    IntSize(IntSizeType),
    Int128(Int128Type),
    Float(FloatType),
}

impl IntType {
    /// Returns the string representation of `self`.
    pub fn as_str(&self) -> &'static str {
        match self {
            IntType::I8 => "i8",
            IntType::I16 => "i16",
            IntType::I32 => "i32",
            IntType::I64 => "i64",
            IntType::U8 => "u8",
            IntType::U16 => "u16",
            IntType::U32 => "u32",
            IntType::U64 => "u64",
        }
    }
}

impl IntSizeType {
    /// Returns the string representation of `self`.
    pub fn as_str(&self) -> &'static str {
        match self {
            IntSizeType::Isize => "isize",
            IntSizeType::Usize => "usize",
        }
    }
}

impl Int128Type {
    /// Returns the string representation of `self`.
    pub fn as_str(&self) -> &'static str {
        match self {
            Int128Type::I128 => "i128",
            Int128Type::U128 => "u128",
        }
    }
}

impl FloatType {
    /// Returns the string representation of `self`.
    pub fn as_str(&self) -> &'static str {
        match self {
            FloatType::F32 => "f32",
            FloatType::F64 => "f64",
        }
    }
}

impl PrimitiveType {
    pub(superfn from_ast(prim: ast::PrimitiveType) -> Self {
        match prim {
            ast::PrimitiveType::i8 => PrimitiveType::Int(IntType::I8),
            ast::PrimitiveType::u8 => PrimitiveType::Int(IntType::U8),
            ast::PrimitiveType::i16 => PrimitiveType::Int(IntType::I16),
            ast::PrimitiveType::u16 => PrimitiveType::Int(IntType::U16),
            ast::PrimitiveType::i32 => PrimitiveType::Int(IntType::I32),
            ast::PrimitiveType::u32 => PrimitiveType::Int(IntType::U32),
            ast::PrimitiveType::i64 => PrimitiveType::Int(IntType::I64),
            ast::PrimitiveType::u64 => PrimitiveType::Int(IntType::U64),
            ast::PrimitiveType::isize => PrimitiveType::IntSize(IntSizeType::Isize),
            ast::PrimitiveType::usize => PrimitiveType::IntSize(IntSizeType::Usize),
            ast::PrimitiveType::i128 => PrimitiveType::Int128(Int128Type::I128),
            ast::PrimitiveType::u128 => PrimitiveType::Int128(Int128Type::U128),
            ast::PrimitiveType::f32 => PrimitiveType::Float(FloatType::F32),
            ast::PrimitiveType::f64 => PrimitiveType::Float(FloatType::F64),
            ast::PrimitiveType::bool => PrimitiveType::Bool,
            ast::PrimitiveType::char => PrimitiveType::Char,
            ast::PrimitiveType::byte => PrimitiveType::Byte,
        }
    }

    /// Returns the string representation of `self`.
    pub fn as_str(&self) -> &'static str {
        match self {
            PrimitiveType::Bool => "bool",
            PrimitiveType::Char => "char",
            PrimitiveType::Byte => "byte",
            PrimitiveType::Int(ty) => ty.as_str(),
            PrimitiveType::IntSize(ty) => ty.as_str(),
            PrimitiveType::Int128(ty) => ty.as_str(),
            PrimitiveType::Float(ty) => ty.as_str(),
        }
    }
}

Messung V0.5 in Prozent
C=86 H=99 G=92

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.1Bemerkung:  (vorverarbeitet am  2026-06-23) ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik