# IEpubMetadataExtractor

- File ID: file:vdwqp9:iepubmetadataextractor-cs
- Path: NexusReader.Application/Abstractions/Services/IEpubMetadataExtractor.cs
- Role: service
- Layer: application

## Purpose

Defines an application-layer abstraction for extracting metadata from an EPUB stream, returning a Result-wrapped LocalEpubMetadata asynchronously.

## Key Details

Interface exposes a single async method returning Task<Result<LocalEpubMetadata>>; implementation responsibilities include stream parsing and error/result handling via FluentResults.

## Symbols

- IEpubMetadataExtractor: Defines an application-layer abstraction for extracting metadata from an EPUB stream, returning a Result-wrapped LocalEpubMetadata asynchronously.
- ExtractMetadataAsync(): Asynchronously extracts metadata from the provided EPUB stream and returns it wrapped in a FluentResults Result.

## Dependencies

- No resolved dependencies.

## Calls

- No resolved calls.

## Unresolved References

- dependency-target: FluentResults (NuGet/namespace)
- dependency-target: NexusReader.Application.Queries.Reader (namespace containing LocalEpubMetadata)
- dependency-target: System.IO (Stream)

## Coverage

- Symbols: 2
- Executable symbols: 1
- Executable symbols with control flow: 1
- Grounded edges: 2
- Unresolved references: 3
- Control-flow fragments: 1
- Unresolved jumps: 0
- Unsupported constructs: 0
- Control-flow coverage: 100%
- Required diagrams: 2
- Generated diagrams: 2

## Control Flow Fragments

- ExtractMetadataAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs

## Diagrams

### IEpubMetadataExtractor Neighborhood

```mermaid
flowchart LR
    class_18sfucp_iepubmetadataextractor("IEpubMetadataExtractor")
    file_vdwqp9_iepubmetadataextractor_cs("IEpubMetadataExtractor")
    method_hwn6lg_extractmetadataasync[["ExtractMetadataAsync()"]]
```

### IEpubMetadataExtractor Execution Overview

```mermaid
flowchart TD
    class_18sfucp_iepubmetadataextractor("IEpubMetadataExtractor")
    method_hwn6lg_extractmetadataasync[["ExtractMetadataAsync()"]]
    class_18sfucp_iepubmetadataextractor -->|contains| method_hwn6lg_extractmetadataasync
```

## Diagram Validation

- Status: pass
