Skip to main content

Crate typr_core

Crate typr_core 

Source
Expand description

§TypR Core

Pure logic for TypR - a typed superset of R.

This crate contains the core functionality that can be compiled to WebAssembly:

  • Parsing TypR source code
  • Type checking
  • Transpilation to R

§Architecture

The crate is designed to be platform-agnostic by using trait abstractions for all I/O operations:

  • SourceProvider: Provides source code content (replaces std::fs::read_to_string)
  • OutputHandler: Handles transpilation output (replaces file writes)
  • PackageChecker: Checks/installs R packages (replaces Command execution)

§Usage

use typr_core::{Compiler, InMemorySourceProvider};

let mut sources = InMemorySourceProvider::new();
sources.add_source("main.ty", "let x: Number = 42;");

let compiler = Compiler::new(sources);
let result = compiler.compile("main.ty")?;
println!("R code: {}", result.r_code);

Re-exports§

pub use components::context::config::Environment;
pub use components::context::Context;
pub use components::error_message::typr_error::TypRError;
pub use components::language::Lang;
pub use components::type::Type;
pub use processes::parsing;
pub use processes::transpiling;
pub use processes::type_checking::typing;
pub use processes::type_checking::typing_with_errors;
pub use processes::type_checking::TypingResult;
pub use abstractions::*;

Modules§

abstractions
Abstraction traits for platform-independent operations
components
processes
utils
Pure utility modules for TypR core

Structs§

CompileOutput
Full compilation output
Compiler
Main compiler interface for TypR
TranspileResult
Result of transpilation

Enums§

CompileError
Compilation errors