Faits : A. Par jugement du 17 juin 2019, le Tribunal de police de l'arrondissement de la Broye et du Nord vaudois a constaté que A._ s'était rendue coupable d'abus de confiance et l'a condamnée à 80 jours-amende à 15 fr. et à une amende de 300 fr.; il a suspendu l'exécution de la peine pécuniaire avec un délai d'épreuve de 2 ans et fixé à 20 jours la durée de la peine privative de liberté en cas de défaut de paiement de l'amende. Le tribunal a par ailleurs dit que A._ était débitrice de l'association B._ pour un montant de 15'000 fr. à titre de réparation du dommage matériel et a ordonné la confiscation et la dévolution à l'Etat d'un montant de 4'000 fr. séquestré en couverture de l'amende, des frais de justice et d'une partie de l'indemnité de défense d'office. B. Le 30 octobre 2019, la Cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel formé par A._ contre le jugement du tribunal de police, qu'elle a confirmé. Les faits à l'origine de cette condamnation sont en substance les suivants. L'association B._, qui compte une trentaine de membres, principalement camerounais, a été fondée en 1992 par C._. Son but est de « se réunir, de partager un repas ensemble et de venir en aide aux membres de l'association ». A._, née en 1951 au Cameroun et installée en Suisse depuis 1996, est devenue membre de l'association en 1997; elle en a intégré le comité au début des années 2000, d'abord en tant que membre puis comme présidente. Alors que dans les premiers temps l'association ne tenait pas de comptes, l'aide financière se faisant de cas en cas, chaque membre versant directement un montant à la personne dans le besoin, elle a proposé de créer une caisse de rapatriement et d'alimenter différentes caisses par les cotisations des membres. La caisse de secours était alimentée par une cotisation mensuelle de 100 fr. par membre, qui était remise de main à main à A._, laquelle conservait cet argent à son domicile. Lorsqu'un des membres de l'association était dans le « malheur », selon les termes du règlement, il se rendait auprès de A._, qui lui versait une somme unique de 3'000 francs. A la fin de l'année, le solde disponible après l'octroi des aides était réparti entre les membres de l'association. A la fin de l'année 2017, le solde de la caisse de secours était de 17'000 francs. La caisse de rapatriements a été provisionnée par des versements de 500 fr., ce qui a permis de constituer un capital de l'ordre de 15'000 fr., capital qui a été épuisé par des prélèvements indus effectués par la précédente caissière. A._ a prélevé dans la caisse de secours le montant de 17'000 fr., représentant l'intégralité du solde créditeur à la fin de l'exercice 2017. Cette somme aurait dû être redistribuée aux membres, ce que l'intéressée, qui en avait dépensé la majeure partie, a refusé de faire en prétendant que l'association lui devait de l'argent. L'association B._ a déposé plainte le 30 novembre 2017. C. A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement de la Cour d'appel pénale. Elle conclut, avec suite de frais et dépens, principalement à la réforme du jugement attaqué en ce sens qu'elle est libérée du chef d'accusation d'abus de confiance et que le montant de 4'000 fr. séquestré lui est restitué. A titre subsidiaire, elle conclut à l'annulation du jugement attaqué et au renvoi de la cause à la cour cantonale pour qu'elle rende une nouvelle décision.