coogler
1.0.0
库格尔,但对于我们所有无法访问Jai Beta的Plebs。这个名字来自Coogle和R UST。
基本上,它是通过签名来用于C函数的类似Hoogle的搜索引擎。您将其提供一个C标头或C源文件和所需的功能签名,并为您提供具有该特定签名的所有功能的列表。
cargo install --git https://github.com/lennyerik/coogler.git
cargo run --release <SOURCE_FILE> <SEARCH_QUERY>
或者:
cargo build --release
target/release/coogler <SOURCE_FILE> <SEARCH_QUERY>
搜索查询的位置可能是[<function name> ::] <function signature>
例如,您可以搜索LIBC标题以返回int
函数,并以下列方式获取任何参数:
$ coogler /usr/include/stdlib.h 'int()'
/usr/include/stdlib.h:573:12: rand :: int()
/usr/include/stdlib.h:803:12: clearenv :: int()
/usr/include/stdlib.h:521:17: random :: long()
/usr/include/stdlib.h:591:17: lrand48 :: long()
/usr/include/stdlib.h:596:17: mrand48 :: long()
/usr/include/stdlib.h:980:12: abs :: int(int __x)
/usr/include/stdlib.h:98:15: __ctype_get_mb_cur_max :: size_t()
/usr/include/stdlib.h:730:13: abort :: void()
/usr/include/stdlib.h:587:15: drand48 :: double()
/usr/include/stdlib.h:786:12: putenv :: int(char * __string)
/usr/include/stdlib.h:827:12: mkstemp :: int(char * __template)
/usr/include/stdlib.h:657:19: arc4random :: __uint32_t()
/usr/include/stdlib.h:756:13: exit :: void(int __status)
/usr/include/stdlib.h:762:13: quick_exit :: void(int __status)
/usr/include/stdlib.h:768:13: _Exit :: void(int __status)
/usr/include/stdlib.h:981:17: labs :: long(long __x)
/usr/include/stdlib.h:601:13: srand48 :: void(long __seedval)
/usr/include/stdlib.h:505:14: l64a :: char *(long __n)
/usr/include/stdlib.h:687:13: free :: void(void * __ptr)
/usr/include/stdlib.h:672:14: malloc :: void *(size_t __size)
像Coogle一样,此工具非常适合搜索Raylib标题:
$ coogler raylib/include/raylib.h 'contrast :: Color(Color, float)'
raylib/include/raylib.h:1339:13: ColorContrast :: Color(Color color, float contrast)
raylib/include/raylib.h:1340:13: ColorAlpha :: Color(Color color, float alpha)
raylib/include/raylib.h:1331:13: Fade :: Color(Color color, float alpha)
raylib/include/raylib.h:1337:13: ColorTint :: Color(Color color, Color tint)
raylib/include/raylib.h:1338:13: ColorBrightness :: Color(Color color, float factor)
raylib/include/raylib.h:1433:12: DrawGrid :: void(int slices, float spacing)
raylib/include/raylib.h:1536:12: SetSoundPan :: void(Sound sound, float pan)
raylib/include/raylib.h:1336:13: ColorFromHSV :: Color(float hue, float saturation, float value)
raylib/include/raylib.h:1133:12: SetMouseScale :: void(float scaleX, float scaleY)
raylib/include/raylib.h:1332:11: ColorToInt :: int(Color color)
raylib/include/raylib.h:1335:15: ColorToHSV :: Vector3(Color color)
raylib/include/raylib.h:1357:12: IsFontReady :: _Bool(Font font)
raylib/include/raylib.h:1432:12: DrawRay :: void(Ray ray, Color color)
raylib/include/raylib.h:1535:12: SetSoundPitch :: void(Sound sound, float pitch)
raylib/include/raylib.h:1557:12: SetMusicPan :: void(Music music, float pan)
raylib/include/raylib.h:1342:13: GetColor :: Color(unsigned int hexValue)
raylib/include/raylib.h:1353:12: LoadFont :: Font(const char * fileName)
raylib/include/raylib.h:1365:12: DrawFPS :: void(int posX, int posY)
raylib/include/raylib.h:1467:12: GenMeshPoly :: Mesh(int sides, float radius)
raylib/include/raylib.h:1534:12: SetSoundVolume :: void(Sound sound, float volume)