Crate swc_common

source
Expand description

Utilities for the swc project

§Cargo features

§tty-emitter

Adds default implementation of Emitter. Enabling this feature will add tty-related dependencies.

§sourcemap

Adds methods to generate web sourcemap.

§plugin-base

Base mode for plugins, which can be enabled by plugin-mode or plugin-rt.

This mode creates a trait which can be used to override swc_common itself.

§plugin-rt

Creates an implementation for the plugin trait. This implements simply invokes thread-locals declared in swc_common.

§plugin-mode

Allows replacing operations related to thread-local variables with a trait.

§ahash

Use ahash instead of rustc_hash for AHashMap and AHashSet.

Re-exports§

Modules§

Macros§

Structs§

  • A byte offset. Keep this small (currently 32-bits), as AST contains a lot of them.
  • A character offset. Because of multibyte utf8 characters, a byte offset is not equivalent to a character offset. The SourceMap will convert BytePos values to CharPos values as necessary.
  • Used to create a .map file.
  • A source code location used for error reporting.
  • A source code location used as the result of lookup_char_pos_adj
  • A mark is a unique id associated with a macro expansion.
  • A collection of spans. Spans have two orthogonal attributes:
  • A single source in the SourceMap.
  • Spans represent a region of code, used for error reporting.
  • A SyntaxContext represents a chain of macro expansions (represented by marks).

Enums§

Constants§

Statics§

  • Storage for span hygiene data.

Traits§

Attribute Macros§

  • Alias for #[derive(Spanned, Fold, Clone, Debug, PartialEq)] for a struct and #[derive(Spanned, Fold, Clone, Debug, PartialEq, FromVariant)] for an enum.
  • Derives serde::Serialize and serde::Deserialize.

Derive Macros§

  • Derives serde::Deserialize which is aware of tag based deserialization.
  • Derives swc_common::EqIgnoreSpan.
  • Derives [From] for all variants. This only supports an enum where every variant has a single field.
  • Derives [swc_common::Spanned]. See [swc_common::Spanned] for documentation.
  • Derives swc_common::TypeEq.