/
dgrigorev
/
SkiaSharp
Обзор
Документация
Войти
/
dgrigorev
/
SkiaSharp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
binding/HarfBuzzSharp/Language.cs
55 строк
1 KB
Matthew Leibowitz
Enable Nullability on the binding projects
17 авг 2023, 18:24
17 авг 2023, 18:24
ed94547
Код
Авторство
О чём код?
#nullable disable using System; using System.Globalization; using System.Runtime.InteropServices; namespace HarfBuzzSharp { public unsafe class Language : NativeObject { private static readonly Lazy<Language> defaultLanguage = new Lazy<Language> (() => new StaticLanguage (HarfBuzzApi.hb_language_get_default ())); public static Language Default => defaultLanguage.Value; internal Language (IntPtr handle) : base (handle) { } public Language (CultureInfo culture) : this (culture.TwoLetterISOLanguageName) { } public Language (string name) : base (IntPtr.Zero) { Handle = HarfBuzzApi.hb_language_from_string (name, -1); Name = Marshal.PtrToStringAnsi ((IntPtr)HarfBuzzApi.hb_language_to_string (Handle)); } public string Name { get; } public override string ToString () => Name; public override bool Equals (object obj) => obj is Language language && Handle == language.Handle; public override int GetHashCode () => Name != null ? Name.GetHashCode () : 0; private class StaticLanguage : Language { public StaticLanguage (IntPtr handle) : base (handle) { } protected override void Dispose (bool disposing) { // do not dispose } } } }