Struct symbolic_demangle::DemangleOptions[][src]

pub struct DemangleOptions { /* fields omitted */ }

Options for Demangle::demangle.

One can chose from complete, or name-only demangling, and toggle specific demangling features explicitly.

The resulting output depends very much on the language of the mangled Name, and may change over time as more fine grained demangling options and features are added. Not all options are fully supported by each language, and not every feature is mutually exclusive on all languages.

Examples

use symbolic_common::{Name, NameMangling, Language};
use symbolic_demangle::{Demangle, DemangleOptions};

let symbol = Name::new("$s8mangling12GenericUnionO3FooyACyxGSicAEmlF", NameMangling::Mangled, Language::Swift);

let simple = symbol.demangle(DemangleOptions::name_only()).unwrap();
assert_eq!(&simple, "GenericUnion.Foo<A>");

let full = symbol.demangle(DemangleOptions::complete()).unwrap();
assert_eq!(&full, "mangling.GenericUnion.Foo<A>(mangling.GenericUnion<A>.Type) -> (Swift.Int) -> mangling.GenericUnion<A>");

Implementations

impl DemangleOptions[src]

pub const fn complete() -> Self[src]

DemangleOptions that output a complete verbose demangling.

pub const fn name_only() -> Self[src]

DemangleOptions that output the most simple (likely name-only) demangling.

pub const fn return_type(self, return_type: bool) -> Self[src]

Determines whether a functions return type should be demangled.

pub const fn parameters(self, parameters: bool) -> Self[src]

Determines whether function argument types should be demangled.

Trait Implementations

impl Clone for DemangleOptions[src]

impl Copy for DemangleOptions[src]

impl Debug for DemangleOptions[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.