Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UICompressor

UICompressor is a Swift package for compressing repeated tree snapshots into a deduplicated node store plus lightweight snapshot references.

Install

Add the package in Xcode with the repository URL, or in Package.swift:

dependencies: [
    .package(url: "https://github.com/your-org/ui-compressor.git", from: "0.1.0")
]

Then add "UICompressor" to your target dependencies.

Usage

import UICompressor

struct Node {
    let role: String
    let label: String?
    let children: [Node]
}

let compressor = TreeCompressor(childAttribute: \Node.children) { node, extractor in
    extractor.add(value: node.role, forKey: "role")
    extractor.add(value: node.label, forKey: "label")
}

let compressed = compressor.compress(
    rootNodes: [
        RootNode(timestamp: 1, rootNode: Node(role: "window", label: nil, children: []))
    ]
)

About

Compresses trees

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages