Unverified Commit 5af7fc0b authored by Russell Cohen's avatar Russell Cohen Committed by GitHub
Browse files

Dynamo update (#54)

* Use the new Dynamo DB model

* Convert Vec<T> to [T] when generating formatters
parent 32b55125
Loading
Loading
Loading
Loading
+2331 −1169

File changed.

Preview size limit exceeded, changes collapsed.

+6 −0
Original line number Diff line number Diff line
@@ -41,6 +41,11 @@ sealed class RustType {
        override val name: kotlin.String = "Vec"
    }

    data class Slice(val member: RustType) : RustType() {
        override val name: kotlin.String
            get() = ""
    }

    data class HashMap(val key: RustType, val value: RustType) : RustType() {
        // TODO: assert that underneath, the member is a String
        override val name: kotlin.String = "HashMap"
@@ -76,6 +81,7 @@ fun RustType.render(): String = when (this) {
    is RustType.Integer -> this.name
    is RustType.String -> this.name
    is RustType.Vec -> "${this.name}<${this.member.render()}>"
    is RustType.Slice -> "[${this.member.render()}]"
    is RustType.HashMap -> "${this.name}<${this.key.render()}, ${this.value.render()}>"
    is RustType.HashSet -> "${this.name}<${this.member.render()}>"
    is RustType.Reference -> "&${this.lifetime?.let { "'$it" } ?: ""} ${this.value.render()}"
+7 −1
Original line number Diff line number Diff line
@@ -139,7 +139,13 @@ class JsonSerializerSymbolProvider(
        targetType: RustType,
        body: RustWriter.() -> Unit
    ) {
        val ref = RustType.Reference(lifetime = null, value = targetType)
        // Convert Vec<T> to `[T]` when present. This is needed to avoid
        // Clippy complaining (and is also better in general).
        val sliceToVec = when (targetType) {
            is RustType.Vec -> RustType.Slice(targetType.member)
            else -> targetType
        }
        val ref = RustType.Reference(lifetime = null, value = sliceToVec)
        val newSymbol = symbol.toBuilder().rustType(ref).build()
        rustWriter.rustBlock(
            "pub fn $functionName<S>(_inp: \$T, _serializer: S) -> " +