а чем тогда синглтон отличается от структуры?
Экземпляр структуры либо класса можно инициализировать столько раз, сколько угодно. Паттерн синглтон же гарантирует, что на протяжении всего жизненного цикла приложения инициализируется лишь 1 объект данного класса, к которому есть открытый доступ отовсюду, соотвественно имеется возможность изменить свойства экземпляра в любом месте. В этом его отличие от создания экземпляра обычного класса - имеется побочный эффект в качестве доступа к нему независимо от местоположения и наличии связей, через которые адрес этого объекта можно получить. В данном случае каждый объект, который присваивает экземпляр данного синглтона присваивает его адрес в памяти.
Структуры же передаются копиями, то есть при передаче объекта, я передам не ссылку на себя, а копию, соответственно при изменении какого-либо параметра, изменится лишь значение параметра этой копии, но не передатчика, в отличии от передачи экземпляра класса по адресу