Skip to content

Commit

Permalink
Add stubs for printing FloatingPoints (#71)
Browse files Browse the repository at this point in the history
  • Loading branch information
finnvoor authored Aug 4, 2024
1 parent 0c509d1 commit 13311c7
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
8 changes: 8 additions & 0 deletions Sources/CPlaydate/include/CPlaydate.h
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
#pragma once
#include "pd_api.h"

int formatStringFloat(PlaydateAPI p, char **outstring, float number) {
return p.system->formatString(outstring, "%f", number);
}

int formatStringDouble(PlaydateAPI p, char **outstring, double number) {
return p.system->formatString(outstring, "%lf", number);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// TODO: - Temporary workaround until FloatingPoint print support is added to Embedded Swift
import CPlaydate

// MARK: - Float + CustomStringConvertible

extension Float: @retroactive CustomStringConvertible {
public var description: String {
var outString: UnsafeMutablePointer<CChar>?
formatStringFloat(Playdate.playdateAPI, &outString, self)
defer { outString?.deallocate() }
return String(cString: outString!)
}
}

// MARK: - Double + CustomStringConvertible

extension Double: @retroactive CustomStringConvertible {
public var description: String {
var outString: UnsafeMutablePointer<CChar>?
formatStringDouble(Playdate.playdateAPI, &outString, self)
defer { outString?.deallocate() }
return String(cString: outString!)
}
}

0 comments on commit 13311c7

Please sign in to comment.