respring 0.1.1

A Rust implementation of SwiftUI's Spring.
Documentation
# Respring

An open-source implementation of SwiftUI's `Spring` animation.

This repository aims to provide an interface and behavior identical to SwiftUI's native `Spring` implementation.
This package allows you to use `Spring` to drive your animations without depending on SwiftUI.

## Usage

Use `Spring` to convert between different representations of spring parameters:

```swift
let spring = Spring(duration: 0.5, bounce: 0.3)
let (mass, stiffness, damping) = (spring.mass, spring.stiffness, spring.damping)
// (1.0, 157.9, 17.6)


let spring2 = Spring(mass: 1, stiffness: 100, damping: 10)
let (duration, bounce) = (spring2.duration, spring2.bounce)
// (0.63, 0.5)
```

You can also use it to query for a spring’s position and its other properties for a given set of inputs:

```swift
func unitPosition(time: TimeInterval) -> Double {
    let spring = Spring(duration: 0.5, bounce: 0.3)
    return spring.position(target: 1.0, time: time)
}
```

## Installation

Adding `Respring` to the dependencies value of your `Package.swift` or the Package list in Xcode.

```swift
dependencies: [
    .package(url: "https://github.com/ktiays/Respring.git", from: "1.0.0")
]
```

Normally you'll want to depend on the `Respring` target:

```swift
.product(name: "Respring", package: "Respring")
```