Crate proguard

Source
Expand description

This crate implements handling of proguard mapping files.

The main use case is to re-map classes or complete stack frames, but it can also be used to parse a proguard mapping line-by-line.

The uuid feature also allows getting the UUID of the proguard file.

§Examples

let mapping = r#"
android.arch.core.internal.SafeIterableMap -> a.a.a.b.c:
    13:13:java.util.Map$Entry eldest():168:168 -> a
"#;
let mapper = proguard::ProguardMapper::from(mapping);

// re-mapping a classname
assert_eq!(
    mapper.remap_class("a.a.a.b.c"),
    Some("android.arch.core.internal.SafeIterableMap"),
);

// re-map a stack frame
assert_eq!(
    mapper
        .remap_frame(&proguard::StackFrame::new("a.a.a.b.c", "a", 13))
        .collect::<Vec<_>>(),
    vec![proguard::StackFrame::new(
        "android.arch.core.internal.SafeIterableMap",
        "eldest",
        168
    )],
);

Structs§

CacheError
An error returned when handling a ProguardCache.
DeobfuscatedSignature
A deobfuscated method signature.
LineMapping
A proguard line mapping.
MappingSummary
Summary of a mapping file.
ParseError
Error when parsing a proguard mapping line.
ProguardCache
The serialized ProguardCache binary format.
ProguardMapper
A Proguard Remapper.
ProguardMapping
A Proguard Mapping file.
ProguardRecordIter
An Iterator yielding ProguardRecords, created by ProguardMapping::iter.
RemappedFrameIter
An Iterator over remapped StackFrames.
StackFrame
A Java StackFrame.
StackTrace
A full Java StackTrace as printed by Throwable.printStackTrace().
Throwable
A Java Throwable.

Enums§

CacheErrorKind
Errors returned while loading/parsing a serialized ProguardCache.
ParseErrorKind
The specific parse Error.
ProguardRecord
A Proguard Mapping Record.