This is the first time I've messed with conditional no_std, so I'm sure there are cleaner ways to get some of this stuff. Very open to suggestions - I'd like to try using this myself.
I only learned after writing this that there's a no_std-safe math crate which provides safe floating point wrappers, so it might be worth pulling that in to get rid of all these unsafe intrinsics calls.
I also changed the font "tables" structure from a HashMap to a BTreeMap simply because BTreeMap exists in alloc. I wonder, though, if the map structure is needed at all. It looks like it's not actually used outside of the parse constructor, so perhaps that for-loop should just be rewritten to find and set aside each table as it goes?
This is the first time I've messed with conditional no_std, so I'm sure there are cleaner ways to get some of this stuff. Very open to suggestions - I'd like to try using this myself.
I only learned after writing this that there's a no_std-safe math crate which provides safe floating point wrappers, so it might be worth pulling that in to get rid of all these unsafe intrinsics calls.I also changed the font "tables" structure from a HashMap to a BTreeMap simply because BTreeMap exists in
alloc
. I wonder, though, if the map structure is needed at all. It looks like it's not actually used outside of theparse
constructor, so perhaps that for-loop should just be rewritten to find and set aside each table as it goes?